5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Oracle 質問総合スレ3

1 :NAME IS NULL:2008/10/07(火) 21:58:03 ID:y+gMrh6e

◆前スレ

Oracle 質問総合スレ2
http://pc11.2ch.net/test/read.cgi/db/1194742799

◆前々スレ

Oracle 質問総合スレ
http://pc11.2ch.net/test/read.cgi/db/1163907455

◆公式サイト

OTN-J
ttp://otn.oracle.co.jp/

OTN
ttp://www.oracle.com/technology//index.html


2 :NAME IS NULL :2008/10/07(火) 22:02:51 ID:???
>>1 乙であります。

取り合えず・・・。

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



3 :NAME IS NULL :2008/10/09(木) 02:27:10 ID:x7UcvDt0
Null age

4 :NAME IS NULL:2008/10/09(木) 23:01:42 ID:???
null sage

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

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

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

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

7 :NAME IS NULL :2008/10/10(金) 22:04:32 ID:???
>>6

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

8 :NAME IS NULL :2008/10/10(金) 22:06:01 ID:???
>>6

(´д`)つcommit

9 :NAME IS NULL:2008/10/11(土) 21:00:25 ID:k0WWMN/3
8に激しく同意〜


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

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

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

13 :NAME IS NULL:2008/10/14(火) 19:52:14 ID:???
>>10
可能です。
以上。
はい次の方。

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

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

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

17 :NAME IS NULL:2008/10/21(火) 20:33:45 ID: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」と表記しないのか?

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

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

 この@ABについて、詳しい方、ご教授くださいませ。

18 :NAME IS NULL:2008/10/21(火) 20:36:43 ID:???
ずれてました。訂正。

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


19 :NAME IS NULL:2008/10/21(火) 20:37:42 ID:???
またずれた。すいません・・・_| ̄|○

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

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

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

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

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

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

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

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

でよいのでは?

24 :NAME IS NULL:2008/10/23(木) 00:42:31 ID:ZQGFGXgK
>>23

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

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

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

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

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

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

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

27 :NAME IS NULL :2008/10/24(金) 03:18:55 ID:???
>>26

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

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

28 :NAME IS NULL :2008/10/24(金) 03:25:33 ID:???
>>24

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

29 :NAME IS NULL:2008/10/24(金) 22:45:42 ID:???
>>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:2008/10/25(土) 00:02:09 ID:???
>>29

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

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





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

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

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


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


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

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


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


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

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


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

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

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


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


41 :NAME IS NULL:2008/11/03(月) 16:05:22 ID:???
OTNとかOiSCとか。

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


43 :NAME IS NULL:2008/11/03(月) 19:30:09 ID:???
できたよん

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

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

46 :NAME IS NULL:2008/11/04(火) 11:30:11 ID:???
助けてください・・・
急に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:2008/11/04(火) 14:57:35 ID:xSEhhdTy
TimesTenの話ってここで良いの?
従来のSQLクエリ文とは違うらしいけど
どう違うのでしょうか?


48 :NAME IS NULL :2008/11/04(火) 23:35:02 ID:???
>>46

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


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

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


50 :NAME IS NULL:2008/11/06(木) 18:17:22 ID:???
Windows板池

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

52 :NAME IS NULL :2008/11/06(木) 23:34:20 ID:???
>>49

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



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


54 :NAME IS NULL:2008/11/07(金) 02:04:21 ID:???
本当にくだらない質問ですいません。

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

55 :NAME IS NULL:2008/11/07(金) 03:28:45 ID:???
ユーザーの権限について教えてください

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

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

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


56 :NAME IS NULL :2008/11/07(金) 03:35:59 ID:???
>>54

ほらよ(´д`)つhttp://www.oracle.com/technology/software/products/database/index.html

57 :NAME IS NULL :2008/11/07(金) 03:37:56 ID:???
>>55

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


58 :NAME IS NULL :2008/11/07(金) 03:40:58 ID:???
>>49

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

59 :NAME IS NULL:2008/11/07(金) 13:27:42 ID:???
>>56
Solarisx86/x64版はまだなんだなぁ・・・。

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

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

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

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


61 :NAME IS NULL :2008/11/11(火) 02:51:32 ID:???
>>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:2008/11/11(火) 13:05:28 ID:???
>ディスクへのパスが複数ある場合、ASMだと認識出来ない。
致命的欠陥すぎるw

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

64 :NAME IS NULL:2008/11/11(火) 23:10:52 ID:???
>>62

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


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


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

67 :NAME IS NULL:2008/11/12(水) 07:23:51 ID:1ijqF5aF
SERACなら要ASM

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

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

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

71 :NAME IS NULL :2008/11/13(木) 03:14:23 ID:???
>>69

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

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

72 :NAME IS NULL:2008/11/16(日) 15:44:17 ID:???
【底値買い】 飛びついちゃいけない「注意喚起銘柄」25社 にわか投資家は参照してもらいたい
http://gimpo.2ch.net/test/read.cgi/wildplus/1226794148/

73 :NAME IS NULL:2008/11/16(日) 16:05:29 ID:???
>>72

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


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

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

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

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

どうしたらいいんだ。



76 :NAME IS NULL:2008/11/19(水) 00:10:59 ID:???
>>75

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

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

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

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

79 :NAME IS NULL :2008/11/19(水) 05:55:05 ID:???
>>75

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

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:235814350980

80 :NAME IS NULL :2008/11/19(水) 05:56:51 ID:???
>>77

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

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

82 :NAME IS NULL :2008/11/19(水) 07:02:36 ID:???
>>81

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

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

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

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

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

84 :NAME IS NULL:2008/11/19(水) 21:59:06 ID:???
>>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:2008/11/19(水) 22:00:39 ID:???
(あっ、Excelって数万レコードしか使えないんだっけ…)

86 :NAME IS NULL:2008/11/19(水) 23:01:12 ID:???
>>85

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


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

88 :NAME IS NULL:2008/11/22(土) 15:34:53 ID:???
>>87

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

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

88>>
CROWNってw

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

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

92 :88:2008/11/22(土) 21:02:25 ID:???
>>89

何だお前。

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


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

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

95 :NAME IS NULL:2008/11/22(土) 22:35:55 ID:???
そのレスが理由に今なった

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

>>91
10gR2なら無期限。
http://www.oracle.com/lang/jp/support/lifetime-support-policy.html

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

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

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

99 :NAME IS NULL:2008/11/23(日) 00:49:40 ID:???
>>96

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


100 :NAME IS NULL:2008/11/23(日) 10:18:24 ID:ONIAIzDs
沖縄に外国人3000万人受け入れ計画
http://life.bbs.thebbs.jp/1227401075/

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



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

102 :NAME IS NULL:2008/11/23(日) 11:39:29 ID:???
>>87

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

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

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

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

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

106 :NAME IS NULL:2008/11/23(日) 15:19:35 ID:???
XEよりもいいのかしらん

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

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

>>107
日本語でOK

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

110 :NAME IS NULL:2008/11/24(月) 11:19:10 ID:???
>>103

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

111 :NAME IS NULL:2008/11/24(月) 11:22:28 ID:???
>>109

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

112 :NAME IS NULL :2008/11/24(月) 23:17:59 ID:???
>>109

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

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


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



115 :NAME IS NULL :2008/11/26(水) 04:28:21 ID:???
>>114

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

116 :NAME IS NULL :2008/11/26(水) 04:32:56 ID:???
>>113

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

117 :NAME IS NULL :2008/11/26(水) 04:34:54 ID:???
>>116

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

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

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

120 :NAME IS NULL:2008/11/28(金) 02:32:20 ID:t30Az4UP
すんごい基本的な質問

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

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

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

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

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


121 :NAME IS NULL :2008/11/28(金) 08:41:41 ID:???
>>120

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

122 :NAME IS NULL :2008/11/28(金) 10:22:56 ID:???
>>119

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

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

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

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

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

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

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

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

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

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

130 :NAME IS NULL :2008/12/05(金) 02:06:34 ID:???
>>128

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

lsnrctl status LISTENER
lsnrctl status LISTENER0



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

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

ありがとうございます。

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

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

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

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

よろしくお願いします。

133 :NAME IS NULL :2008/12/08(月) 22:49:59 ID:???
>>132

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

http://www.ne.jp/asahi/hishidama/home/tech/soft/oracle/csvout.html

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

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

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

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

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

135 :NAME IS NULL :2008/12/10(水) 00:15:17 ID:???
>>134

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

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

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

よろしくおながいします

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



138 :NAME IS NULL:2008/12/10(水) 23:19:27 ID: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 :2008/12/10(水) 23:37:15 ID:???
>>138

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

140 :NAME IS NULL:2008/12/10(水) 23:44:48 ID:???
>>139

入ってます

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

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



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

144 :NAME IS NULL :2008/12/11(木) 00:47:52 ID:???
>>140

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

Oracle 総合 Session6
http://pc11.2ch.net/test/read.cgi/db/1162215948/l50


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

146 :NAME IS NULL:2008/12/11(木) 08:21:38 ID:???
>>143

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


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

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

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

149 :NAME IS NULL :2008/12/12(金) 03:29:10 ID:???
>>148

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

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

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

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

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

153 :NAME IS NULL :2008/12/13(土) 05:43:21 ID:???
>>150

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

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

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

156 :NAME IS NULL:2008/12/14(日) 17:58:48 ID:???
>>155
積み上げ

157 :NAME IS NULL:2008/12/14(日) 18:13:36 ID:???
こんなんとか。

http://otn.oracle.co.jp/document/estimate/

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

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

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


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

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

163 :NAME IS NULL:2008/12/15(月) 16:11:37 ID: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:2008/12/15(月) 16:23:41 ID:???
>>162

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


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

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

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

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

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

169 :NAME IS NULL:2008/12/16(火) 11:24:53 ID:???
パーティションバイなんだぜ

170 :NAME IS NULL:2008/12/16(火) 21:14:16 ID:???
>>168
行じゃなくて列な。
row_numberでググれ

171 :NAME IS NULL:2008/12/16(火) 21:50:49 ID:???
なんだ、列なのか
ならできるだろうに

172 :NAME IS NULL:2008/12/17(水) 19:52:19 ID:???
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:2008/12/17(水) 22:05:26 ID:???
副問合せを使わないのであればそうだろう

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

175 :NAME IS NULL:2008/12/19(金) 18:06:44 ID:???
携帯から失礼します。

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:2008/12/19(金) 18:40:29 ID:???
未検証。
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:2008/12/19(金) 22:19:26 ID:???
OracleMasterのBronzeとSilverとでは何が違うのでしょうか
Silverの範囲にBronzeの範囲は含まれるのでしょうか
お願いします

178 :NAME IS NULL:2008/12/19(金) 22:24:03 ID:???
>>177

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

http://www.oracle.com/global/jp/education/certification/examlist.html

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

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

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

181 :NAME IS NULL:2008/12/22(月) 07:42:40 ID:???
あるじゃん?

http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10202solx86soft.html

182 :NAME IS NULL:2008/12/22(月) 11:23:28 ID:???
それって評価版ちゃうの?

183 :NAME IS NULL:2008/12/22(月) 11:44:42 ID:???
クライアントならあるでしょ。
http://www.oracle.com/technology/global/jp/tech/oci/instantclient/instantclient.html

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

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


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

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

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

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

188 :NAME IS NULL:2008/12/23(火) 11:25:57 ID:???
EMから消すというのは。

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

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

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

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

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

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

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


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

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

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

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

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

196 :NAME IS NULL:2008/12/23(火) 15:59:26 ID:???
187で質問した者だが

数々の解答感謝

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

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


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

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

後輩ツエーと思ったが

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

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

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

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


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

197 :NAME IS NULL:2008/12/25(木) 00:20:08 ID:???
「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:2008/12/25(木) 13:43:23 ID:a4IRyWzY
Windows Vista Enterprise 64bit sp1 に
Oracle 10g Client x64 を
インストールしたいのですが
開始してすぐに

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

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

199 :NAME IS NULL:2008/12/25(木) 21:12:38 ID:???
>>197
全角スペース使ってない?

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

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

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

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


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



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

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

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

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

うーん・・・

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

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

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

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


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

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


208 :NAME IS NULL :2008/12/31(水) 04:49:56 ID:???
>>206

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

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

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


210 :NAME IS NULL:2009/01/02(金) 01:47:29 ID:???
デットロックに関して質問です。

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

211 :NAME IS NULL:2009/01/02(金) 02:08:18 ID:???
>デットロック
>デットロック
>デットロック
>デットロック


212 :NAME IS NULL:2009/01/02(金) 05:05:52 ID:???
>>210

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




213 :NAME IS NULL:2009/01/02(金) 05:07:20 ID:???
>>209

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

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

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


215 :NAME IS NULL:2009/01/03(土) 01:51:26 ID:???
>>214

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




216 :NAME IS NULL:2009/01/03(土) 01:53:08 ID:???
iSCSIを使ったRACの構成方法ね。

http://www.oracle.com/technology/pub/articles/hunter_rac10gr2_iscsi.html

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


218 :NAME IS NULL:2009/01/03(土) 05:17:50 ID:???
>>217

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

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

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


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

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


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


223 :NAME IS NULL:2009/01/04(日) 18:00:45 ID: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:2009/01/04(日) 18:48:44 ID:???
↑最後のやつがどうしてもドクオにしか見えんw


225 :NAME IS NULL:2009/01/04(日) 19:29:08 ID:???
>>224

確かにそう見えるねw


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

227 :NAME IS NULL:2009/01/04(日) 19:56:47 ID:???
'A'

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

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



229 :NAME IS NULL:2009/01/05(月) 08:07:15 ID:???
>>223

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

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

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

232 :NAME IS NULL :2009/01/06(火) 02:03:38 ID:???
>>231

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

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

234 :NAME IS NULL:2009/01/06(火) 17:44:35 ID:???
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:2009/01/06(火) 17:56:50 ID:???
書き忘れ

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

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

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

237 :223:2009/01/07(水) 01:56:28 ID:FkfkhGDT
>>228

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


238 :234:2009/01/07(水) 10:11:58 ID:???
>>236
ありがとうございます。

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

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

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

239 :NAME IS NULL:2009/01/07(水) 11:06:33 ID:???
>>238

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

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

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

240 :234:2009/01/07(水) 14:44:37 ID:???
>>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:2009/01/07(水) 22:47:34 ID:???
>>240 239 じゃないけど
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/backup.102/B19192-03/rcmdupdb.htm

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

242 :NAME IS NULL :2009/01/07(水) 23:23:55 ID:???
>>240

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

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

243 :NAME IS NULL :2009/01/07(水) 23:42:57 ID:???
>>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:2009/01/09(金) 20:59:42 ID:Q8QuRN46
oo4oって何と読むのでしょうか?


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

246 :NAME IS NULL:2009/01/09(金) 23:43:51 ID:???
o∀o

247 :NAME IS NULL:2009/01/10(土) 00:47:19 ID:???
>>244
おーおーふぉーおー

248 :NAME IS NULL:2009/01/10(土) 01:23:52 ID:???
略さず読んでる

249 :NAME IS NULL:2009/01/10(土) 14:21:41 ID:???
o¥o

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


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

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

253 :NAME IS NULL:2009/01/12(月) 12:44:30 ID:???
>>252

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

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

255 :NAME IS NULL:2009/01/12(月) 15:25:51 ID:???
Record Access Write

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

http://www.google.com/search?q="Record Access Write"

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

257 :NAME IS NULL:2009/01/12(月) 16:15:25 ID:???
>>256

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



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

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

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


260 :NAME IS NULL:2009/01/13(火) 01:29:12 ID:???
>>252
実用的な使い方かは別として。

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

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

261 :NAME IS NULL :2009/01/13(火) 07:31:57 ID:???
>>260

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


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

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

263 :NAME IS NULL:2009/01/13(火) 16:00:48 ID:???
歴史を見るとわかり易い、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:2009/01/17(土) 18:30:02 ID:???
1ヵ月分の差分バックアップからの戻しで死ねました....
戻すのに5日かかったよ ママン


265 :NAME IS NULL:2009/01/17(土) 20:28:18 ID:???
>>264


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

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


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

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

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

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


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

272 :sage:2009/01/18(日) 22:31:58 ID:s/0DH11a
根拠ないに一票。

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

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

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


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

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

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


278 :NAME IS NULL:2009/01/20(火) 03:04:27 ID:???
>>276

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


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

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

281 :280:2009/01/23(金) 19:58:32 ID:???
>>279
ああ、すまん。ちゃんとCFSって書いてあった。

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

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

283 :NAME IS NULL:2009/01/25(日) 19:19:34 ID:???
なんかOTNに登録しようとしたら

Email address contains invalid domain name.

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

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


285 :NAME IS NULL:2009/01/28(水) 04:38:52 ID:???
>>282

('A`)つ AUTONOMOUS_TRANSACTION

286 :NAME IS NULL:2009/01/29(木) 01:13:43 ID:???
>>282

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

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

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

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

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

291 :NAME IS NULL:2009/01/31(土) 01:12:12 ID:???
>>288
('A`)

292 :NAME IS NULL:2009/01/31(土) 01:41:04 ID:???
レスありがとうです

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

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

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



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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

@ SELECT * FROM USER_TABLES;
A SELECT * FROM TAB;

Aのデメリットって

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

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

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

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

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

311 :NAME IS NULL:2009/02/08(日) 09:42:10 ID:???
その分高価だからな

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

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

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

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

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

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


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


318 :NAME IS NULL:2009/02/08(日) 21:40:21 ID:???
oo4oとか今更ありえないですからっ!

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

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

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

322 :わかってない:2009/02/08(日) 23:45:14 ID:???
教えてくだされ。
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:2009/02/09(月) 03:00:55 ID:???
>>321
マニュアルで事足りる。
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/index.htm
→administration タブ
 →Oracle Clusterware および Oracle Real Application Clusters 管理およびデプロイメント・ガイド
  http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/rac.102/B19198-06/toc.htm

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

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

324 :NAME IS NULL:2009/02/09(月) 15:09:50 ID:???
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:2009/02/09(月) 15:22:04 ID:???
自決しました

326 :NAME IS NULL:2009/02/09(月) 15:25:31 ID:???
無茶しやがって

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

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



328 :わかってない:2009/02/09(月) 19:22:33 ID:???
>>323
トン

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

http://docs.sun.com/app/docs/doc/817-4909/6mkdd9ifj?l=ja&a=view



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

の記述がありました。





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

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

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

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

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

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

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

335 :NAME IS NULL:2009/02/10(火) 09:35:32 ID:???
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:2009/02/10(火) 13:51:30 ID:???
>>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:2009/02/10(火) 20:17:04 ID:???
一時テーブルを使いたいのですが
CREATE GLOBAL TEMPORARY TABLE だと
セッションが切れてもテーブルが残ってしまいます。
セッションが切れたらテーブルにも消えてほしいのですが
どうしたらよいでしょうか。

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

339 :NAME IS NULL:2009/02/11(水) 07:01:45 ID:???
>>337

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

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

341 :NAME IS NULL:2009/02/12(木) 09:26:59 ID:???
こんにちは。

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

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


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

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

343 :NAME IS NULL:2009/02/12(木) 18:32:59 ID:???
>>339
ありがとうございます。

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

345 :NAME IS NULL:2009/02/12(木) 23:31:25 ID:???
>>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:2009/02/12(木) 23:38:43 ID:???
上記のオプションは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:2009/02/12(木) 23:45:49 ID:???
>>341

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

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

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

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

新学期から学校の授業で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:2009/02/14(土) 02:45:23 ID:???
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:2009/02/16(月) 22:52:38 ID:???
Oracle11g/LinuxでSQLローダのダイレクトパス使って9000万件のデータを入れました。
入れてからPKとインデックスをつけようとすると
「スナップショットが古すぎます」 (´・ω・`)

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

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

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

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

353 :NAME IS NULL:2009/02/16(月) 23:26:26 ID:???
>>352
UNDO領域を増やす

354 :NAME IS NULL:2009/02/17(火) 00:40:47 ID:???
>>352
コミットしてみ。

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

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

356 :355:2009/02/17(火) 12:22:27 ID:???
午前中に現状を調査してみました。

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

こんな感じでした…

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


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

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

359 :357:2009/02/19(木) 06:57:09 ID:???
>>358
それがわけわからんかったw
つーか、SQL*Loaderが終わってなかったんじゃーの?
どういう指定したかわからないけど、ロード後にインデックス作りにいくと思う。
で、表共有ロックされてるからTRUNCATEできず、インデックスは使用不可になっていたのでは?
と思うけど、情報が少なすぎてよくわからん。

360 :NAME IS NULL:2009/02/21(土) 15:19:58 ID:Tn/yJXyX
今度、Oracle10を再インストールすることになったんですが
11にするかもしれないからとにかくデータだけバックアップしろと
言われました。
単純にデータだけバックアップしたいときはどうしたらいいんですかね。
インデックスやら計画とかはどうでもいいそうです。

前任者が生きていればいろいろ聞けたんですが
この前夢枕に立った時に聞いとけば良かったな・・・

361 :NAME IS NULL:2009/02/21(土) 16:48:35 ID:???
>>360
エクスポート・インポートの単語が出ない時点で
サポート呼ぶか外注にやってもらうのが吉かと。

362 :NAME IS NULL:2009/02/21(土) 17:45:47 ID:???
>>360
前任者のところにいって訊いてくればいい。

363 :NAME IS NULL:2009/02/21(土) 17:49:32 ID:???
SQLDeveloper使ってINSERT文形式でexportしておけば?
最悪、postgresとかmysqlに乗り換えることになっても何とかなりそうだし。
っていうか前任者何で亡くなったの?もしかして責任取らされて。。。

364 :NAME IS NULL:2009/02/21(土) 19:21:41 ID:???
361だけど
テーブル数とか,そのデータ量にもよるでしょ。
なんだこの素人質問。

365 :NAME IS NULL:2009/02/21(土) 21:46:27 ID:???

素人はお前じゃボケ

366 :NAME IS NULL:2009/02/21(土) 21:57:41 ID:???
いいや俺だね

367 :NAME IS NULL:2009/02/21(土) 23:47:26 ID:???
>>360

ハードウェア障害が発生したとき等の為に日常業務として、
Oracleデータベースのバックアップは取得していると思いますが、
どういった方法で取得しているのでしょうか?

>>362

なかなか酷なことを言いますね。
行ったり来たり出来ると便利でいいですよね。


368 :NAME IS NULL:2009/02/22(日) 01:28:25 ID:???
>>360
Windowsの前提で話すね。
EXP_FULL.BATというファイルをメモ帳で作る。中身は、こんな感じ。

SET ORACLE_SID=インスタンス名
SET NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE
EXP 管理者ユーザ/パスワード FULL=Y FILE=EXP_FULL.DMP LOG=EXP_FULL.LOG STATISTICS=NONE
PAUSE

1行目のインスタンス名は、エクスプローラで
oracleデータベースのインストール先を観察すれば分かる。
XXXXの部分。他にTNSNAMES.oraの中身を見ても分かるけど。
D:\oracle\oradata\XXXX\admin

2行目は、多分大丈夫と思うからやってみてダメだったらまた質問して。
3行目の管理者ユーザ/パスワードは、SYSTEM/ORACLE、SYSTEM/MANAGER、
あたりをよく使うけどね。EXP SYSTEM/ORACLE FULL=Y つづくって感じで。
駄目だったら、サーバの中身をいろいろ探してみて、SYSTEMの上位であるSYSか、
それ以外の管理者のパスワードが見つかればラッキーかな。
管理者のパスワードが分からないと、途端に大変な(不可能かもしれない)作業になるんだよね。

作ったBATファイルを実行して、EXP_FULL.LOGの最後が、
エクスポートは警告なしで終了しました
だったら、オーケー。BATファイル、LOGファイル、DMPファイルを
一式で、欲しい人に渡せば、後は何とか(インポート)してくれるよ。

369 :NAME IS NULL:2009/02/22(日) 01:35:57 ID:???
ゴメン。インスタンス名の調べ方、間違った。

D:\oracle\oradata\XXXX\bdump
D:\oracle\oradata\XXXX\cdump
D:\oracle\oradata\XXXX\create
D:\oracle\oradata\XXXX\pfile
D:\oracle\oradata\XXXX\udump

こんな感じでした。
コントロールパネルの「サービス」を見て、
OracleServiceXXXX
でも分かる。

370 :NAME IS NULL:2009/02/22(日) 01:38:47 ID:???
親切

371 :NAME IS NULL:2009/02/23(月) 01:38:00 ID:???
Windows版のRACって、例え買ってもOSからはOCFSを自由に読み書きできないのでしょうか?
どんな感じか評価版みたいなのあるといいのですが、11gのトライアル版では駄目なようですし・・・

372 :NAME IS NULL:2009/02/23(月) 06:40:40 ID:???
>>371
OSからOCFSは見えるので、普通にアクセスは可能。
でもDBに関係しないファイルの操作はサポートされない。
Windows版だとClusterwareに含まれてるはず。
クラスタ設定時にOCR、投票DiskをOCFSで設定すれ
ば自動的に構成されるはず。
# 11gのWinRACは未経験なので違うかも

373 :NAME IS NULL:2009/02/23(月) 22:06:07 ID:???
質問させて頂きたく。

Aデータファイル:auto extend(on)自動拡張で拡張中
Bデータファイル:auto extend(off)作りたてで空きいっぱい

A,Bが同じ表領域で新しいextendが作られる場合は
どちらに作られるのでしょうか?

素人な質問で恐縮ですが、
何卒。。。


374 :NAME IS NULL:2009/02/24(火) 06:58:25 ID:???
>>373
extendとextentを混同してるような・・・大丈夫?
extend→データファイルの拡張
extent→データファイル内の表や索引を構成するセグメントの拡張

答え:
extendが作られる場合
extend onであるAに作られる。
Bはextendしようがない。

extentが作られる場合
空きいっぱいであるBに作られる可能性が高い。

375 :NAME IS NULL:2009/02/25(水) 00:23:43 ID:???
>>374
動詞と名詞を混同してるような・・・大丈夫?

言いたいことはわかるが、extendは作られるのではなく、起きる。

376 :NAME IS NULL:2009/02/25(水) 10:58:57 ID:???
PGSQLしか触ったこと無いけど10gR2面倒見ろ言われてポカーンしてます。
構築・管理してた奴が突然辞めやがって・・・orz
すみません、質問させてください。

■質問1
undostatっていうのとdba_hist_undostatっていうのを見比べてると、
BEGINTIME/ENDTIMEがundostatは2009.02.23、dba_hist_undostatは2030.02.23と
なってるんですが、これって何故ですか?
サーバ(Linux)のdateとはundostatが一致しています。

■質問2
ROLLSTAT見て表示されたHWMSIZEを合計すると約13.5GBになりますが、
undotbs.dbfの物理ファイルは約27GBになります。
undostatのexpiredblksの値*1ブロックのバイト数も約13.5GBです。
HWMSIZEと物理ファイルサイズって関連性はないんですか?

■質問3
undotbs.dbfって奴はほぼ毎日65MBほど肥えていますが、ブロック数を見ると
週に1回程度65MB相当分が増えてる程度です。
undotbs.dbfが肥え太る原因って、主にどういった場合なんでしょうか?

ググりながら勉強してるんですが、どうにも参考資料が見つからず。
質問自体が意味不明でしたら、ツッコミいただけると幸いです。

377 :NAME IS NULL:2009/02/25(水) 20:52:36 ID:???
俺が答えられるのは、質問3だけです。

undotbs.dbfが大きくなる原因・・・
UPDATE/INSERT/DELETE処理でしょうね。
例えば夜間に大きな更新処理をしていませんか?
工夫するとしたら・・・
・DELETE文を使っている場合、
TRUNCATE TABLE文に置き換えられないか検討する。
・適切な件数ごとに処理し、適宜commitする。

とりあえず、どの時間帯に、どういう処理が
実行されているかを、リストアップした方がいいと
思います。Linuxのcrontab?atコマンド?あたりで
定期的な処理が何か動いてませんか。

378 :NAME IS NULL:2009/02/26(木) 00:29:11 ID:???
>>376
>質問1
確認したSQL文は?

>質問2
関連無い。

>質問3
可能性:
・トランザクションが増えている。(本命)
・UNDO_RETENTIONが無駄に大きい。(一応確認)

>ググりながら勉強してるんですが
大間違い。
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19224-02/undo.htm

379 :NAME IS NULL:2009/02/26(木) 01:51:11 ID:???
373で質問したものです。

374、375さん、レスありがとうございます。
正直、恥ずかしい限りです。動詞と名詞を混同してる件、、ごもっともです。

とりあえず、extentが作られる場合はAデータファイルでextendは起きず
Bデータファイルに作られる可能性が高いと。。。

たしかに、上記現象が起きていまして安心しているのですが
Aデータファイルでextendが発生し続けるとディスクFULLに
陥るため、少し心配しておりました。

運用しているOracleでauto extend(on)10GBまで拡張できるデータファイルが
5つあり、それぞれ2.5GBまで拡張しています。
その後、運用が変わりauto extend(off)のデータファイルを追加していますが
auto extend(on)の5つのデータファイルはextendを止め?
追加したauto extend(off)のデータファイルにextentが作られているみたいです。

最初からドライブの空きを考慮してデータファイルの追加を行えば、、、

最後に再び、、374、375さん ありがとうございました☆

380 :NAME IS NULL:2009/02/26(木) 02:19:41 ID:???
名詞と動詞を混同しているのは>>374も、だが。

381 :NAME IS NULL:2009/02/26(木) 10:55:34 ID:???
11gで4000byte以上の全文検索をしたいんですが、
lobは全文検索対象にできないの?

4000byte以上のテキストが入ってくる場合の
全文検索ってどうやってるの?>11g

382 :376:2009/02/26(木) 12:46:51 ID:???
>>377
ありがとうございます。
毎朝にupdateしてるものがありました。
この辺から疑ってみます。

>>378
ありがとうございます。
URLもありがとうございます。参考にします。
Q1.AccessでODBC接続、直接参照してます(不精ですみません)
Q2.やっぱりそうなんですよね。
Q3.トランザクションは377さんの件と合わせて確認してみます。
  UNDO_RETENTIONは900ですが、TUNE_UNDORETENTIONに30000になるケースも。

まずは基礎を勉強して、ある程度理解してから調査します。
根本的な部分を誤認しているようにも思うので。

ありがとうございました。

383 :NAME IS NULL:2009/02/26(木) 21:21:40 ID:???
9iでエクスポートしたDMPファイルを10gでインポートしようとしたら
「AQ$_JMS_USERPROPARRAY」
が無いって怒られたんだけどどうすればいいの?

どっかに定義するSQLがあるんだろうと思ってgrepしてみたけど見当たらないよor2


384 :NAME IS NULL:2009/02/26(木) 21:43:20 ID:???
>>381
全文検索って Oracle Text だよね?
もしかして like 検索?

>>382
>TUNE_UNDORETENTIONに30000になるケース
という事は、MAXQUERYLEN も増えているはず。
ロングクエリーも存在するなら、バッチ処理とかで消費されている
だけで「必然」かもしれないし、その処理の見直しで解決するか
もしれない。

>>383
この辺で幸せになれる?
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19244-01/toc.htm

385 :381:2009/02/27(金) 00:20:44 ID:???
>>384
Oracle Textです。
今、テーブル作ってやってみたらできました。
clobでできました!
ありがとうございます!

386 :NAME IS NULL:2009/02/27(金) 00:39:09 ID:6rJ3Y1Cl
初歩的な質問でスマン
SQL*LoaderのINFILEに指定するファイル名って
ワイルドカードの*って使える?

387 :NAME IS NULL:2009/02/27(金) 00:53:17 ID:5E5n6s7G
Exadataってどうなのよ?

388 :NAME IS NULL:2009/02/27(金) 06:49:34 ID:???
ttp://otndnld.oracle.co.jp/document/products/cs10g/1012/doc_cd/content.1012/B25665-02/text.htm

Oracle Textには、索引のメンテナンス用に2つのPL/SQLパッケージが用意されています。
通常のデータベース索引とは異なり、Oracle Text索引は、情報が挿入または
更新されるたびに動的に更新されません。
Oracle Textのストアド・プロシージャであるctx_ddl.sync_indexを使用して、
索引を定期的にリフレッシュ(同期化)する必要があります。

ctx_ddl.sync_indexプロシージャでは、索引全体が再構築されるのではなく、
最後の同期化以降に変更された記録の追加および削除が行われます。
変更は増分的であるため、このプロシージャを頻繁に実行するほど、高速化されます。
ただし、時間が経過すると索引が断片化される可能性があるため、
索引を最適化するためのプロシージャ(ctx_ddl.optimize_index)が用意されています。
Oracle Content Servicesの構成中、IFS_TEXT索引を同期化および
最適化するプロシージャは、Oracle DatabaseのDBMS_JOBSパッケージを
使用して、バックグラウンドで定期的に実行されるように自動的に設定されます。
DBMS_JOBSプロシージャは、UNIXシステムのcron jobsと同様のプロシージャで、
Oracle Databaseが実行されているすべてのプラットフォームに移植できます。

構成中にOracle Content Servicesスキーマが作成されると、同期化ジョブと
最適化ジョブの2つのDBMS_JOBSが設定されます。
通常、Oracle Content Servicesスキーマの名前はCONTENTです。

注意:
同期化ジョブと最適化ジョブは、新規スキーマの作成時にのみ
自動的に作成されます。既存のスキーマからアップグレードしている場合、
これらのジョブは自動的に作成されません。


389 :NAME IS NULL:2009/02/27(金) 07:34:26 ID:???
>>387
システムの価格は65万ドル。
ソフトウェアのライセンス価格は168万ドル。
1ドル100円として6500万円、1億6800万円。
データ容量としては、12TB*n台。RAC前提。

経験を語る事が出来る奴がこのスレにいると思う?
俺は思わない。

390 :NAME IS NULL:2009/02/27(金) 07:43:47 ID:???
>>386
1万行ずつ4個に分かれたファイルを全て指定する、
みたいな事は出来たと思うけど、*は使えなかったように思う。
制御ファイル内のINFILE指定以外にも
コマンドライン上のDATA指定の方法もあるはずだけど、
そっちはどうだったかな。
会社で暇が出来たら試せるかもしれない。期待せぬよう。

391 :NAME IS NULL:2009/02/27(金) 08:03:38 ID:???
>>386
OS(シェル)に展開させれば済むのでは?

392 :376:2009/02/27(金) 10:36:19 ID:???
>>384
その後、SQLをチェックしてみるとアホな副問合せが見つかりました。
首吊って死ねってくらいのアホさ・・・
作った奴を吊るし上げて、明日(今日)までに直せ!と言ったら徹夜してます。

それ以外にも前任のアホ設計がボロボロと。
それに気付いて、バレる(障害になる)前に辞めたんじゃないかと疑ってます。

3月9日から処理ピークだぁ。
それまでに直せるかなぁorz

本当にありがとうございました。

393 :NAME IS NULL:2009/02/27(金) 14:46:56 ID:???
>384

幸せになれた気がしたけどまだ早かったようだ

"SYS"."AQ$_JMS_USERPROPARRAY"の実行権限を与えてインポートしても
「オブジェクト型"SYS"."AQ$_JMS_USERPROPARRAY"が存在しない、または識別子が違っています」
って言われてしまう。
(AQ_ADMINISTRATOR_ROLEを与えても同じ)

オブジェクト自体は存在してて権限も与えてるのになぜ・・・○rz


394 :386:2009/02/27(金) 20:25:56 ID:???
>>390,391
ありがとー
シェルに搭載することにしました

395 :NAME IS NULL:2009/02/28(土) 00:18:19 ID:???
>>389
日本だと Oracle Exadata Summit に参加した人か、中の人じゃ
ないと会話できないんじゃないかな。
経験者?国内で数人程度はいるのか?

>>393
幸せになれませんでしたか…。
Export/Import のコマンドライン詳細及び、エラー詳細は出せますか?
(エラーメッセージじゃなくエラーコードと前後関係も重要)


396 :NAME IS NULL:2009/02/28(土) 02:27:17 ID:???
>>392
アフォは、アフォなりに
「誰も技術を教えてくれない。試行錯誤ばかりだ。」と思ってます。
可能であれば、責めるんじゃなくて、作業を分担してあげてください。

397 :NAME IS NULL:2009/02/28(土) 03:20:45 ID:l8Y/h12f
3年生専門学校に在学中で、学校の指示でオラクルマスター11gのブロンズの資格を目指すように言われて調べてたんだけど、
受験するのに基礎TとDBAのそれぞれの試験ごとに受験料が15000円+消費税がかかる認識で合ってますか?

398 :NAME IS NULL:2009/02/28(土) 04:17:35 ID:???
>>397
OK

399 :NAME IS NULL:2009/02/28(土) 06:21:39 ID:???
資格を確実に取るためには、
iStudyという学習ソフトが即効性あると思いますが、
これがまた、結構な値段します。

ttp://www.istudy.ne.jp/
iStudy for Oracle Master Bronze DBA 11g DL版
標準価格: \12,600
iStudy for Oracle Master Bronze 11g SQL基礎 I DL版
標準価格: \12,600


400 :NAME IS NULL:2009/02/28(土) 21:10:22 ID:???
10gのBronze資格を去年取ったけど11gには無効なんだよなぁ。
バージョン単位での資格になってるから最新バージョンが出るとその度に同じBronzeでも取り直しは面倒すぎる。
せめてバカ高い受験料を少しでも安くしたり何か優遇してもらえれば有り難い所なんだけどなぁ。
特にplatinum所有者は受験料が10万以上するから負担が半端ないだろうから。
最近は重要視する会社も増えてるから受けさせられる事が多いが、
現場行くと資格あってもさほど役に立たないし単にオラクル社がバカ儲けするだけの資格にしか思えない。

401 :NAME IS NULL:2009/02/28(土) 23:57:23 ID:???
>現場行くと資格あってもさほど役に立たないし単にオラクル社がバカ儲けするだけの資格にしか思えない。

何を今更

402 :NAME IS NULL:2009/03/01(日) 14:03:30 ID:???
俺自身社内教育でsilverまで取らされたが確かに役に立たん
基本情報処理の国家認定の資格と同様に
業務上ではよく使用する簡単なクエリが出来て分からなくなったらリファレンス本見ながら対応すれば事が足りる
利用価値といえば客先業務で仕事貰う時の受け入れ面接時には多少アピール部分になるぐらい
データベースに少し詳しい人なんだなと

403 :NAME IS NULL:2009/03/01(日) 14:35:46 ID:???
資格そのものが役に立つか立たないかは状況によると思うが、
新SilverならDBA Iをとってるわけでしょ?あの内容をマスター
しているのであれば、チューニングや設計を行う素養はあると
みなせると思うけどなぁ。
単に「SQL書けます」って人とはそのへん違うと思うんだが。
>>402が旧Silverだったらスマン。確かにあれは意味がない。

404 :NAME IS NULL:2009/03/01(日) 14:39:01 ID:???
>>400
とりあえずSilverまで取って、バージョンアップしていけばいいんじゃないですか?
あなたが有能なら会社が研修受けさせてくれるかもしれないし…
まあ、Platinumは10万ではともて取れないですけどね。

Silverで必要最低レベルぐらいだと思うけど、Platinum持っている人は相当できる人だと思う。
Platinumは実力があって、DB構築から管理まで、あらゆる事象に対して、素早く必要なマニュアルから情報を参照し
正しく適用できる能力が必要だと思う。

405 :NAME IS NULL:2009/03/01(日) 18:22:50 ID:TX+JAs9q
RMANの質問なのですが、
現在、10gをアーカイブログモードで運用しています。
RMANで、system表領域をバックアップしようとしたところ
エラーになりました。
sysaux表領域や別の表領域はバックアップできるのです。
system表領域をRMANでフルバックアップは、できないのでしょうか?
どなたかご教授いただければ幸いです。

406 :NAME IS NULL:2009/03/02(月) 01:35:54 ID:eCie/yRb
失礼します。
顧客DBをWebアプリケーションで作成更新するようにしたいと思っています。
(企業名,代表社名,所在,電話,メール,受注日,契約商品,個数,残ポイント,発送日) × 1,000,000件
のイメージのDBを作成したいのですが、
この程度の規模のDBの場合、
SQLサーバー,Oracle,MySQL,その他でどの種類が比較的多く利用されているでしょうか。
1000店ほどの店舗が日中にアクセスする予定です。
よろしくお願いします。

407 :NAME IS NULL:2009/03/02(月) 02:07:44 ID:???
MySQLかPostgres
XEて用途限定なしだっけ?だったらXEでもいいかも。

408 :NAME IS NULL:2009/03/02(月) 02:14:13 ID:???
100万件程度ならMySQLだろうね

リレーショナル(笑) と言われることも多いけど
今の時代DBにリレーショナルさせない方が主流になりつつあるしね

409 :NAME IS NULL:2009/03/02(月) 08:43:19 ID:???
>>406
質問したり相談する相手がこのスレだけならば
素直にOracle買ってサポート受けるのが吉かとアドバイス。

410 :NAME IS NULL:2009/03/02(月) 12:04:35 ID:???
>>405

当然出来る。
というか出来ないとフルバックアップの意味がない。
バックアップ先は何よ?
ディスク、それともテープ?
後はO/Sは何?
>>2ぐらい読んでから質問してくれ。

411 :NAME IS NULL:2009/03/02(月) 19:49:17 ID:3VFbPniH
Application Server 10g(10.1.3)って
Oracle Databaseのバージョンいくつに対応するんでしょうか?

412 :NAME IS NULL:2009/03/03(火) 09:16:05 ID:9sMragPd
CRS環境のとき、ファイアウォールに穴あけなきゃいけないポートって
どこかに一覧あったっけ?

413 :NAME IS NULL:2009/03/03(火) 20:35:38 ID:o+hGzJeW
>>411
ttp://www.oracle.com/technology/software/products/ias/files/oracle_soa_certification_r3_10.1.3_matrix.xls
です。
サーバのOS、Javaのバージョンにより異なるけど、
あなたが知りたいことは、結果的には、たぶんこれ。
Oracle 9i (9.2.0.8+)
Oracle 10g (10.1.0.5+)
Oracle 10g (10.2.0.2+)
Oracle 11g (11.1.0.6+)


414 :NAME IS NULL:2009/03/03(火) 22:42:47 ID:???
>>412
某社がファイアウォールを増設した時は、彼らは
LANアナライザ(Sniffer)で、2週間くらいウォッチして
穴あけなきゃいけないポートを、○△×でリストアップしたよ。

○:適切な経緯があり業務上必要。通す。
△:判断保留。
×:明らかに不正であり通さない。

TCP/IPにおいて、ポート番号はデフォルトポート以外が
利用される事もあるし、ORACLEなんかだと、
インストール時に自動設定される固有値も多いから、
妥当な措置だし、仕方ないと思った。

ttp://otndnld.oracle.co.jp/document/products/oracle10g/102/solaris/B25025-02/app_port.htm
Oracle Databaseのポート番号の管理

415 :NAME IS NULL:2009/03/04(水) 07:59:02 ID:???
11gってもうx.6まで出てるのかw

416 :412:2009/03/04(水) 09:33:54 ID:???
>>414
マジかwww
適当だなぁ・・・あとから参照も出来ないってどういうことなんだろ。

417 :NAME IS NULL:2009/03/04(水) 10:31:34 ID:6d/7Bbw/
CRSインストール後、仮想NICが出来ると聞いたんだけど
ifconfig見ても無いっぽい。
これってDBもインストールしたあとじゃないと出てこないのかな

418 :NAME IS NULL:2009/03/04(水) 11:14:05 ID:???
>>417

ちゃんとクラスタは構成されているのかな。
crs_stat -t とかで確認。


419 :417:2009/03/04(水) 13:21:00 ID:???
バージョンは10gR1です。

$ crs_stat -t
CRS-0202: リソースが登録されていません。

テラインスコ失敗www
olsnodes -n だとちゃんと見えるんだけどなぁ
調べてたらvipca実行しろとか出てきた。 いつ実行するんだこれ。

420 :NAME IS NULL:2009/03/04(水) 21:47:09 ID:???
>>415
11gって、最初のリリースが11.1.0.6だよ。
今の最新は11.1.0.7で、2008年10月頃に公開。
11.1.0.7が最初に公開されたのは、
Linux x86で2008/10/10、UNIX系がそれに続き、
最後がWindowsだった。Win x64は11/27だよ。

Windowsは顧客数も多いしウザったいから、
他のOSで地雷が潰れるまで、
待っとけこの野郎、ってことなんだと解釈してる。

421 :NAME IS NULL:2009/03/04(水) 23:57:13 ID:???
>>416
つか、インターコネクトにファイアウォール必要?
パブリックのクライアント-DBならCRSとか関係ないんだし。

>>419
せめてR2にしよう。
んで多分パブリック回線がプライベートIPウンヌン(非公開)

>>420
>他のOSで地雷が潰れるまで
PSRが同じで修正 Bug一覧が違うか?という点から何か
が見えてくるような来ないような。

422 :NAME IS NULL:2009/03/05(木) 02:44:15 ID:8flqGIdl
PL/SQLを見よう見まねで使い始めたところです。

既に設計されたDBにはパッケージ本体が作られており、その中に6つのプロシージャと2つのファンクションがあります。
また、パッケージ本体とは別にパッケージがあり、その中に5つのプロシージャがあります。

そこで質問です。なお、DB設計には手を加えないものとします。
1) プロシージャは値を返さないと聞きましたが、OUTの引数はどういう使い方をするのでしょうか?
 OUTの引数は返り値だと思っていたのですが、どうも違うようです。
 できれば、OUTの引数を取り出したいと思っています。
2) 5つのプロシージャは、パッケージ本体のプロシージャと同一名であり、
 どうもこちらに渡して処理を行っているようです。
 そこで、パッケージ本体にしかなさそうな1つのプロシージャと2つのファンクションは
 パッケージ本体内でしか使用できず、外部からは直接使用できないのでしょうか?

423 :NAME IS NULL:2009/03/05(木) 07:20:48 ID:???
>>422
1) OUTの引数は、2種類以上の戻り値を返却するために使います。
HOGE_PKG.DELETE_PROC01(
 PV_WHERE_IN,
PV_DELETED_ROW_CNT_OUT,
PV_NOT_DELETED_ROW_CNT_OUT
);
削除した件数と残った件数の両方を返却させたい、とかね。
現実はもっともっと複雑でしょう。

2)
通常、パッケージは仕様部と本体の2つの部分で構成されますが、
本体が不要な場合もあります。仕様部はパッケージへのインタフェースです。
ここでは、型、変数、定数、例外、カーソル、およびパッケージの外から
参照できるサブプログラムを宣言します。本体は、カーソルの問合せと
サブプログラムのコードを定義します。
仕様部はインタフェース、本体はブラック ・ボックスと考えることができます。
パッケージの仕様部を変更しなくても、本体をデバッグ、拡張または置換できます。
ttp://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19257-01/packages.html
一読してみてね。
アプリケーションの設計の容易さ=
開発チーム内で、仕様部はベテランが1人で頑張って作って、
PACKAGE BODYは、ベテラン、新人混合の3名で分担して作る、なんてことをします。
ベテランは最初だけ頑張るって事じゃなくて最初から最後まで頑張りますよ。

424 :NAME IS NULL:2009/03/05(木) 09:34:12 ID:47/HAHeb
Oracleインストールの手順書なんかを読むと
ulimitでプロセス数とファイルディスクリプタ数を変更しろとあるけど
ほんとにプロセス1万個とかファイル6万個とか同時に開くの?

425 :NAME IS NULL:2009/03/05(木) 19:03:33 ID:???
>>424
Linuxで、とか10gR2のインストール手順で、とか
簡単な情報でいいのだから、なるべく書いてください。

回答としては、そんなに開くとは思えません。
一方で、ulimitの記述を書かないと
サーバの規定値(「ulimit -a」で表示される値)が使用され、
unlimitedは取り得る最大の値を確保してしまうでしょうし、
少なすぎるとORACLEの動作に支障があるでしょう。
私はORACLE社の手順書どおりの値で気になりません。
なぜなら、あなたの考えと同様に、そんなに使うわけはない
と考えているからです。一方で、当該の設定値を
減らす事で、どんなメリットがあるのかを思いつかないので、
あえて変更する意味を見出せません。

ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230911/
【 ulimit 】 コマンドに割り当てる資源を制限する

ttp://www.oracle.co.jp/2shin/no109/o157feature2.html
以降では、デフォルトのシェルとしてBashが
利用されていることを前提とします。
次の行を/etc/profileファイルに追加します。
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi


426 :NAME IS NULL:2009/03/06(金) 00:01:16 ID:???
Linuxで10gR1のインストールを練習中です。
どの手順書を読んでも Xを飛ばす設定を最初に行いますが
これは必ず必要なものなのでしょうか。

各サーバのディスプレイに直接表示、では済まないのでしょうか

427 :NAME IS NULL:2009/03/06(金) 07:13:37 ID:???
>>426
その場合、必要ではないです。
でも手順には書かれてあるべき内容です。

環境変数DISPLAYの使い方を知る
一般的なUNIX使いにとっては常識的な内容です。
今回はサーバ上のディスプレイにXを表示させているから
不要だな、とすぐ分かるからです。逆に記述が無いと混乱します。

Linuxのサーバが10台あると仮定します。
このとき私は、サーバ上のディスプレイを使ってインストールしたくありません。
私は、画面が広いX端末を1台用意して、
サーバの画面をXで飛ばさせて複数台を同時にインストールしたいです。

428 :426:2009/03/06(金) 09:54:17 ID:???
>>427
ありがとうございます。
マジで必要なのは rootに化けてGUI使うとき くらいですかね。

429 :NAME IS NULL:2009/03/07(土) 02:46:12 ID:???
>>419

CRSインスコの最終段階でConfiguration Assitantの「Oracle Cluste Verification Utility」が
走って、大抵そこでfailedとなるはず。
この時に、Configuration AssitantのX-windowをそのままにしておいて、他のプロンプトから
vipcaのX-windowを開いてconfigする。
Config終了後、Oracle Cluste Verification Utilityを再実行すると通る様になる。

まあ、CRSインスコ後にvipca走られせてもいいんだけどね。




430 :NAME IS NULL:2009/03/07(土) 02:49:08 ID:???
>>421

同意。
ボラクル及びCRSのインターコネクトはプイラベートネットワークが基本。
よってF/Wや、iptablesの使用は全く推奨されていない。
CRSのインスコ時にダイナミックに使用ポートを決めてくる事もあるため、
F/Wやiptablesが有効になっていると、インスコそのものが失敗する事も
ある。

431 :NAME IS NULL:2009/03/08(日) 20:43:07 ID:???
なんか基本的なことを偉そうに語る奴らばかりでイライラするぜ。

432 :NAME IS NULL:2009/03/09(月) 10:48:41 ID:???
「基本的なこと」を語ってるだけで「偉そうに」見えるのって
何コンプレックス?

433 :NAME IS NULL:2009/03/09(月) 11:21:16 ID:???
ハイハイ、ワロスワロス

434 :NAME IS NULL:2009/03/10(火) 09:31:01 ID:???
10gR1をRAC構成で使ってます。
Oracleの動作ログとか起動ログってどこにできるのでしょうか。
CRSの調子が悪くてログを見たいのですが
find $ORACLE_BASE -name "*.log" -mtime 1
とかやってもいっこも出てきません。
Oracleってログはインストール時にしか吐かないとか?

435 :NAME IS NULL:2009/03/10(火) 14:10:06 ID:bhlrenuU
ASMを実験中なんだが、データベースが
ファイルじゃなくてASMで指定したロウデバイスに
ちゃんと保存されてるかどうかを確認したいんだが
なにをみたらいいのかね?

とりあえずEMで表領域のある場所を確認したら
+UNKO/test/datafile/
だったけど、これは実際にはどこを指してるのかわからん

Oracleのバージョンは10.1.0です

436 :NAME IS NULL:2009/03/10(火) 14:35:44 ID:???
> だったけど、これは実際にはどこを指してるのかわからん

何をどこまで知りたいのかね。
+UNKO/ は ASM のディスクグループを示すから、それでは不十分だということ?

R2 だと asmcmd があるけどね。

R1 はこんな感じか。

SQL> SELECT concat('+'||gname, sys_connect_by_path(aname, '/')) filename
FROM (SELECT g.name gname, a.parent_index pindex, a.name aname,
a.reference_index rindex
FROM v$asm_alias a, v$asm_diskgroup g
WHERE a.group_number = g.group_number)
START WITH (mod(pindex, power(2, 24))) = 0
CONNECT BY PRIOR rindex = pindex;


437 :436:2009/03/10(火) 14:53:35 ID:???
ありがとう。
ディスクグループの名前をうっかり普通のインスタンス名と
同じにしてしまったので、なにがなんだかわかんなくなってたっぽい。

>こんな感じか。
をこれから試してみる。問題ないことが確認できたらあとでチューしてあげる

438 :NAME IS NULL:2009/03/11(水) 06:54:04 ID:???
>>434
実機が無いから記憶で答えると、alert.logかな。
起動した、とかシャットダウンした、とか
ORA-600のエラー出した、とか、そういうのが出る。
インスタンス単位で出る。

あと、どこのクライアントから接続してきた、とかは
listener.log。これはリスナー単位で出る。


439 :NAME IS NULL:2009/03/11(水) 22:16:31 ID:???
>>434

show parameter bdumpでalert.logの吐き先を確認。
CRS関連のログは以下のディレクトリを探せ。
$ORA_CRS_HOME/crs/log
$ORA_CRS_HOME/css/log
$ORA_CRS_HOME/evm/log
$ORA_CRS_HOME/srvm/log



440 :NAME IS NULL:2009/03/11(水) 23:26:45 ID:???
RMANとディスクのミラー分割組み合わせてバックアップ取っている人っている?
EMCのBCVとRMAN組み合わせてみようと思ってるんだけど、使い勝手とか
戻しで注意する点とかもし知っていたら教えて欲しいんだけど?


441 :NAME IS NULL:2009/03/12(木) 00:17:14 ID:???
>>440

教えてもらう態度じゃないな。墓穴掘って死ね。


442 :NAME IS NULL:2009/03/12(木) 11:19:27 ID:DMHovpVA
$ORA_CRS_HOME/crs/init/UNKO01/
の下に3Gくらいの巨大なファイルがいっぱいあるんだけど
core.1234
みたいな名前のはやっぱりただのcoreファイルかな。
こんなの消しちゃってもいいよね?

443 :NAME IS NULL:2009/03/12(木) 22:25:30 ID:???
通常は消しても支障ないが、頻発するようなら取り合えずサポートに
提出する必要性を考えてスタックトレースだけ取って消去。


444 :NAME IS NULL:2009/03/13(金) 09:39:20 ID:???
crs_stat -t
で出力される名前が省略されずにフルで見れるを方法を教えてください。


あと、なんでいつもOracleはこんな適当な仕事をするのかも教えてください。

445 :NAME IS NULL:2009/03/13(金) 12:33:08 ID:???
#!/usr/bin/ksh
RSC_KEY=$1
QSTAT=-u
AWK=/usr/xpg4/bin/awk

$AWK \
'BEGIN {printf "%-45s %-10s %-18s\n", "HA Resource", "Target", "State";
printf "%-45s %-10s %-18s\n", "-----------", "------", "-----";}'

$ORA_CRS_HOME/bin/crs_stat $QSTAT | $AWK \
'BEGIN { FS="="; state = 0; }
$1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1};
state == 0 {next;}
$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
$1~/STATE/ && state == 2 {appstate = $2; state=3;}
state == 3 {printf "%-45s %-10s %-18s\n", appname, apptarget, appstate; state=0;}'

446 :NAME IS NULL:2009/03/13(金) 22:54:03 ID:???
>>444
しっかり自分で調べてから物事はたずねてくれ。

オラクルがアバウトな感じなのはアメリカを象徴するような会社だからだ。
嫌なら使うな。

447 :NAME IS NULL:2009/03/14(土) 05:55:46 ID:mzAyY/XE
oracle9iのクライアントからoracle11gのサーバーに接続できますか?

448 :NAME IS NULL:2009/03/14(土) 09:39:58 ID:???
Oracleのサイトでは分からなかったのかい?

449 :NAME IS NULL:2009/03/14(土) 10:25:54 ID:???
>>447-448

以前はあったがいまは公開されている情報がない。

KROWN にはあるから探してみな。


450 :NAME IS NULL:2009/03/14(土) 12:10:19 ID:???
仕方ねぇから調べてやったぞ。
9iクライアントから11gに繋ぐ場合、クライアントのバージョンが9.2.0.4以降である必要がある。
9.2.0.3より下位バージョンは例え繋がったとしてもサポート外だそうだ。

451 :NAME IS NULL:2009/03/14(土) 14:22:43 ID:???
なんだか他力本願なヤツが増えてるな。

452 :NAME IS NULL:2009/03/14(土) 14:41:47 ID:???
他力本願の意味わかってるか。

453 :NAME IS NULL:2009/03/14(土) 18:11:16 ID:???
>>452
努力しないで他人の力をあてにすること。
お前こそ日本語、わかってるか?

454 :NAME IS NULL:2009/03/14(土) 18:48:56 ID:???
>>453

違うな。
俺は浄土真宗ではないけれども、それは本来の意味ではない。

バカは黙っとれ。


455 :NAME IS NULL:2009/03/14(土) 18:51:30 ID:???
>>453

もしかしてお前在日か? 死んで詫びなさい。

456 :NAME IS NULL:2009/03/14(土) 18:58:37 ID:???
本来の意味じゃないけど誤用でもない。さあ無教養はどっち

457 :NAME IS NULL:2009/03/14(土) 19:01:13 ID:???
下手に宗教用語使うからじゃないの

458 :NAME IS NULL:2009/03/14(土) 20:09:42 ID:???
もはや宗教由来の日常語に過ぎない。

459 :NAME IS NULL:2009/03/15(日) 01:37:24 ID:???
一般的な使い方を否定してうだうだやってて面倒なヤツが多いな。

460 :NAME IS NULL:2009/03/15(日) 23:47:42 ID:hRb5KBp6
「確信犯」て誰かが書いたら、同じ反応するんだろうね。


461 :NAME IS NULL:2009/03/16(月) 08:17:49 ID:???
確信犯と役不足はいわゆる誤用を認めない立場も有効

462 :NAME IS NULL:2009/03/16(月) 09:04:31 ID:???
「姑息」「潮時」「自己責任」「失笑」「煮詰まる」なんてのもあるな。


463 :NAME IS NULL:2009/03/16(月) 16:50:29 ID:???
見事な仕事だと感心するがどこもおかしくはない

464 :NAME IS NULL:2009/03/16(月) 18:06:54 ID:???
何の板かよくわからなくなってるが、しっかり調べた上でわからなかったら聞きましょう、ってことで。
これより質問板再開。

465 :NAME IS NULL:2009/03/18(水) 02:27:00 ID:???
oracle dataguardについて質問させて頂きたくお願いします。
ver9.2.0.5です。

訳あって、standbyとして動いているサーバを
他の用途に使用したいと考えております。

その際、primary側で何か設定を行う必要はあるのでしょうか。
放置でも問題無いように思うのですが、、駄目でしょうか。

init.oraにあるdataguard用の設定をコメントアウトして
再起動した方が良いのでしょうか。

また、注意点、正式な手順があるなら
ご教授頂きたく。。
よろしくお願いします。

466 :NAME IS NULL:2009/03/18(水) 03:51:20 ID:???
1. 保護モードの変更
select protection_mode from v$database;で確認。

2. log_archive_dest_n の変更
スタンバイに転送するためにlog_archive_dest_n='service=xxxx' というような
  設定があるから、そいつを削除。

3. Data Guard 関連のパラメータの削除
以下を削除
* fal_server, fal_client
* standby_file_management
* standby_archive_dest
* log_archive_config
* log_archive_local_first
* remote_archive_enable
* db_file_name_convert
* log_file_name_convert


4. 必要ならアーカイブログモードからノンログアーカイブへ変更



467 :NAME IS NULL:2009/03/20(金) 04:24:38 ID:???
466さん ご返信頂きありがとうございました。

1.のselect protection_mode from v$database;の
結果は「MAXIMUM PERFOMANCE」でした。
※ロジカルスタンバイです。

1についてはそのままで
2.3についてはinit.oraの記述を修正しようと思います。
4.はそのままにしておきます。

また、ひとつ質問ですが、、、
Oracle Dataguardの構成で、もしprimaryがハード故障で
システム(OS)が停止し起動できなくなった場合に
standbyのDBをオープンすることは可能でしょうか?

@alter database activate standby database;
 私の持っている手順書にはstandbyで@を実行するとフェールオーバーする、
 と書いてあるのですが@のSQL文が実行できません。

Aselect switchover_status from v$database;
 Aの結果が「NOT ALLOWED」となるのが原因と考えWebで下記SQL文を探しました。

Balter database commit to physical standby;
 Bを実行した結果Aの結果が「NOT ALLOWED」から「TO PRIMARY」に変わって
 @の実行に成功し一度、shutdownした後に
 init.oraを修正してstartupしたらDBをオープンすることができました。

上記の場合、primaryがハード故障でシステムにログインできない状況ですと
フェールオーバーできない訳で・・・
私の認識が間違えていることを祈りつつ、
ご存知の方がいらっしゃいましたら
ご教授頂きたく。。。

primaryuが予期せぬ異常で起動できなくなった場合に
standbyでDBをOPENする正しい?方法を
ご教授願います。

468 :NAME IS NULL:2009/03/20(金) 04:27:05 ID:???
complex_view_merging
でKROWNを検索してみたところ、
オイラは今、ちょっくら青ざめている状況です。

長い間8.1.7利用してて、
2年前から10gR2利用のオイラですけど、
こうなったら、初期化パラメータで
_complex_view_merging=false
設定で行こうかと思ってます。
経験談持ってる人は語っていただけませんか。


469 :NAME IS NULL:2009/03/20(金) 05:11:23 ID:???
>>467
KROWNには、次のような記載がありました。
============================================================
※フェイルオーバーの詳細な手順はバージョンによって異なるため、
 フェイルオーバー実行時には必ず使用バージョンのマニュアルを
 参照してください。
============================================================
そのKROWNには、standbyが受信済みのREDOを適用する
FINISH文の紹介もありつつ、
primaryダウン時に緊急的な対処として行う
強制的なACTIVATEについても記述がありました。

<<フィジカル・スタンバイの場合>>
SQL> ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;
<<ロジカル・スタンバイの場合>>
SQL> ALTER DATABASE ACTIVATE LOGICAL STANDBY DATABASE;

「@のSQL文が実行できません。」という記載の意味することが、
standbyに接続できないのか/実行したけど無応答なのか/エラーが発生したのか
良く分からないので、その状況について、詳細に語るべきだと思います。

470 :NAME IS NULL:2009/03/20(金) 09:20:21 ID:???
>>469
そんなことここで言われてもな。
そんなに気になるなら、サポートに強く言って、修正してもらえ。

471 :NAME IS NULL:2009/03/20(金) 10:02:49 ID:RBnEHUMv
>>468

自分の担当しているところではFALSEに設定している。

すでに複合ビューマージが使われている場合には
そのパラメータをFALSEに設定してしまうと
設定したことにより複合ビューマージが行われなく
なってしまうので、性能劣化が発生する可能性がある。

ただ、結果不正と性能劣化のどっちがましなのかと考えると
性能劣化なので、そこは我慢するしかないのかと思う。


472 :NAME IS NULL:2009/03/21(土) 23:34:57 ID:???
467です。皆様、ご返事頂きありがとうございます。

469さん > 「@のSQL文が実行できません。」という記載の意味すること・・・
ALTER DATABASE ACTIVATE (PHYSICAL) STANDBY DATABASE;
の結果はORA-01154です。
「database busy.open,close,mount,and dismount not allowed now」

primaryダウン時なので、primaryの存在は無く
standbyで実行したSQL文でstandbyより発生したエラーです。

primaryダウン時は、mountで起動しているstandbyを
shutdownしてinit.oraでoracle dataguardの設定を
コメントアウトしてopenする方法なのでしょうか・・・

ちなみにバージョンは9.2.0.5です。
マニュアルが手元に無いので探して正式なフェールオーバーの
手順を探す予定ですが、primaryダウン時のフェールオーバーは
不可能だったりすると、、悲しいです...

473 :NAME IS NULL:2009/03/22(日) 01:36:18 ID:???
>>472
まず、プライマリ側落ちててフェールオーバーできなかったらなんのためのデータガードだと・・。
それからマニュアルないとか言い訳にならない。
インターネットつながってる時点でマニュアル見られるんだから。
もっと色々自分で調べるクセをつけないと生き残れないぞ。

474 :NAME IS NULL:2009/03/22(日) 08:31:14 ID:???
ORA-01154を調べた結果を、俺なりにまとめます。
オフィシャルに回答できるのは、ORACLE社だけだから、
サポート契約を検討してね。

[原因]
プライマリ・データベースが最大保護モードだから。

[参考]
モードには以下の3つがあります。
・最大保護モード
・最大可用性モード
・最大パフォーマンスモード
確認方法は、select protection_mode from v$database;です。
467さんの希望は、最大可用性モードか、最大パフォーマンスモード
なんだと思います。一度、モードを確認してください。

475 :NAME IS NULL:2009/03/22(日) 18:29:55 ID:???
474さん ありがとうございます。

プライマリ・データベースのselect protection_mode from v$database;の
結果は「MAXIMUM PERFOMANCE」でした。

設計書にもモードは「最大パフォーマンスモード」と記述があり
上記は間違いないと思います。

私の希望は、、、「最大パフォーマンスモード」で
プライマリが壊れた状況において、スタンバイ側で
ALTER DATABASE ACTIVATE STANDBY DATABASE;の実行により
ORA-01154などでエラーとならず、フェールオーバーさせることです。

また、サポート契約の件、検討します。
ありがとうございます。

476 :NAME IS NULL:2009/03/23(月) 00:15:19 ID:???
('A`)つRECOVER MANAGED STANDBY DATABASE CANCEL;


477 :NAME IS NULL:2009/03/23(月) 12:59:46 ID:???
>>476
ッアッーーー!!

478 :NAME IS NULL:2009/03/23(月) 18:55:56 ID:nLPi1KZA
10gR1をRAC構成で作りましたが、sqlplusで普通に接続できるのに
lsnrctl status がこんなエラーになります。

(ADDRESS=(PROTOCOL=tcp)(PORT=1521))に接続中
TNS-12541: TNS: リスナーがありません。
TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00511: リスナーがありません。
Linux Error: 111: Connection refused

netstatで見ると、tcp1521で確かに何かが待ち受けているので
いわゆる標準のインスタンス名LISTENERでは無い名前で
リスナーが動作しているのでしょうか?



すみません、自己解決しました。
listener.oraを見たらなんか全然違う名前でした。

479 :NAME IS NULL:2009/03/23(月) 19:15:09 ID:???
>>479
じゃあ書き込むなよ。
せっかくなので余談だが、RACだとデフォでlistener_SIDになる。

480 :479:2009/03/23(月) 19:17:33 ID:???
スマン、>>478だったw

481 :478:2009/03/23(月) 19:38:58 ID:???
>>480
ドンマイ

482 :NAME IS NULL:2009/03/23(月) 22:41:19 ID:???
>>476

467です。できましたT_T
ありがとうございましたT_T


483 :NAME IS NULL:2009/03/24(火) 00:32:57 ID:???
2台のWinServer2003R2にそれぞれXEのサーバ、クライアントを入れているんで
すが、クライアントから接続出来ません。

LISTENERが起動している事は確認しました。また、以前XPにクライアントを入
れていた際は普通にサーバに繋がっていました。

サーバ機上ならSQLPLUSも問題なく動いています。tnsnames.oraの内容、各マシ
ンのFW、ネットワーク、一通り確認したつもりです。

svr2k3→svr2k3の組み合わせだと別途注意すべき点があったりしますでしょう
か?

484 :NAME IS NULL:2009/03/24(火) 03:45:28 ID:???
>>483

どんなエラーがクライアント側に返ってきているんよ?
sqlnet.oraのNAMES.DIRECTORY_PATHにWorldとか指定されていて
「繋がらねぇ〜」とかってオチだったりしてな!?

485 :NAME IS NULL:2009/03/24(火) 18:58:38 ID:???
2003で一番ありがちなのは、Windows FireWallサービス。

一旦、手動にして止めたつもりでも、
知らんうちに有効になったりして
「アレ?」とトラブルになる。

俺はORACLEをインストールしたサーバでは、
スッパリ諦めて無効にしているが、自己責任で。


486 :NAME IS NULL:2009/03/24(火) 19:06:00 ID:???
>>471
>>468です。経験談ありがとうございます。

オイラが信頼するオイラ以上の知識を有する知り合いにも
相談しました。ちなみに、>>471さんと同意見でした。


487 :NAME IS NULL:2009/03/27(金) 16:52:45 ID:???
SELECT * FROM TAB;

で出てくる CLUSTERID ってなに?
ググってもこれの解説してるところがない。

488 :NAME IS NULL:2009/03/27(金) 22:59:51 ID:LUFIdYWI
http://www.geocities.jp/yhp20010911/index.html

489 :NAME IS NULL:2009/03/28(土) 00:51:00 ID:???
>>487

TAB自体が下位互換性のために未だに使用できる様になっているけど、
使用は推奨されていない。


490 :NAME IS NULL:2009/03/28(土) 20:01:59 ID:???
>>489
ありがとう。これからはALL_TABLES使います。

491 :NAME IS NULL:2009/03/29(日) 21:41:29 ID:tW/sgpmt
今度10Gで初めてASMでDBを作成してみようと思っているのですが、
大まかな作成の流れを教えて下さい。

DB作成未経験の初心者です、よろしくお願いします。

492 :NAME IS NULL:2009/03/29(日) 22:11:22 ID:???
10G じゃなくて 10g な。

- DBCAを起動する
- ASMの設定をする
- DBを作成する

こんだけ。簡単だよ。





493 :NAME IS NULL:2009/03/29(日) 22:35:00 ID:tW/sgpmt
>>492
なるほど、それだけでいいんですね。ありがとうございます。

494 :NAME IS NULL:2009/03/30(月) 02:03:04 ID:???
10.1と10.2で結構違って面白いよな

495 :NAME IS NULL:2009/04/01(水) 11:16:41 ID:???
PL/SQLを使おうとしたのですが
NUMBER型の引数の値を一度NUMBR型の変数に代入し
RETURNにその変数を指定すると
使用不可コードのワーニングが出て困っています。
RETURNの型はNUMBER型です。
引数をそのままRETURNで返すとワーニングは出ません。
何が悪いのでしょうか…
2バイト文字がいけないのかと全て無くしても変わりませんでした。


496 :NAME IS NULL:2009/04/01(水) 11:55:59 ID:???
日本語でおながいしまつ

497 :NAME IS NULL:2009/04/01(水) 21:41:52 ID:???
>>489
まじで!

はじめてしったわ・・・

498 :NAME IS NULL:2009/04/02(木) 07:34:24 ID:???
>>495
本当にそのレベルの処理なら、ここで
PL/SQLのコードを晒しても問題ありません。
公開したくない情報を削って、
晒してください。

また、ORA-XXXXのエラー番号、
ORACLEのバージョン、オペレーションシステム
についても、情報が必要です。

このスレ住民は、なぜかとても親切なので、
再現性を確認してくれる可能性が高いです。

499 :NAME IS NULL:2009/04/02(木) 15:58:10 ID:???
v$asm_disk の各項目の意味とかをまとめて解説してるページってある?
HEADER_STATUSのとりうる値とか、解説がないから
見ても異常かどうか勘でしか判断できない
v$asm_diskgroupなんかもよくわからんよね

500 :NAME IS NULL:2009/04/02(木) 20:43:48 ID:???
1 自動ストレージ管理(ASM)の概要
ttp://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05783-04/asmcon.htm
2 ASM用のストレージの準備
ttp://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05783-04/asmprepare.htm
3 ASMインスタンスの管理
ttp://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05783-04/asminst.htm
4 ASMディスク・グループの管理
ttp://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05783-04/asmdiskgrps.htm
4ではダメ?



501 :NAME IS NULL:2009/04/03(金) 01:36:14 ID:???
>>497

結構有名なんだけどな。
一応ソースな。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4249.htm#sthref2082

502 :499:2009/04/03(金) 10:47:21 ID:???
>>500
ありがとう。少し助かりました。

503 :NAME IS NULL:2009/04/03(金) 16:37:36 ID:q9U6bHad
RAC構成で、 ときどき ORA-01017が出ます。

ずっとパスワードエラーでログインできないなら まだわかるんだけど
ときどき ってのが腑に落ちません。
これって、どっちかの系でユーザがいないってこと?
そんなことってRAC構成でありうるんですか・・・?

504 :NAME IS NULL:2009/04/03(金) 23:52:18 ID:???
>>503

エスパーじゃないから、プラットフォームも分からないし、DBのバージョンも知りません。
そんなので答えられると思うんですか?

505 :NAME IS NULL:2009/04/04(土) 00:33:11 ID:???
>>504
ありがとうございます。 とりあえず よくあるトラブルではないことと、
OSやバージョンに依存する可能性の高い、そこそこ珍しい現象であること
がわかりました。
バージョンですが、10gの10.1.0.2です。OSはRHEL3です。
RAC構成でASMを使っています。

506 :NAME IS NULL:2009/04/04(土) 03:35:36 ID:???
ORACLEの認証には大別して2つの概念、
OS認証と、ORACLEベースの認証があります。
ttp://www.microsoft.com/japan/sql/facts/compare/02.mspx
#Oracle では、Oracle データベースに登録されたユーザー名、
#パスワードを使用した認証が基本であり、OS 認証は推奨されていません。
Microsoftの提灯記事だけど、適切な記述だと思います。
まあ、Oracle7から使っている自分にとっては当たり前なので
そんな些細な事でSQL*Serverを使おうとも思いませんが。

実際、10.1.0では次のような不具合が報告されています。
例:JDBC OCI Driver(Type 2)+OS認証で、ORA-01017発生→10.1.0.4で修正

RHEL3をお使いとの事ですが、OS認証を一度やめてみてはいかがですか?

507 :NAME IS NULL:2009/04/04(土) 03:36:48 ID:???
誤:SQL*Server
正:SQL Server


508 :NAME IS NULL:2009/04/04(土) 09:03:29 ID:???
OS認証が推奨されていてもORACLEベース認証の方がいいな

509 :NAME IS NULL:2009/04/04(土) 10:30:08 ID:bkcQQ2Bx
CREATE TABLE Supplier
(
SName CHAR(20),
ItemName CHAR(20),
Price INTEGER,
PRIMARY KEY (SName, ItemName)
);

CREATE TABLE Item
(
ItemName CHAR(20),
Description CHAR(50),
PRIMARY KEY (ItemName),
FOREIGN KEY(ItemName)REFERENCES Supplier(ItemName)
);

CREATE TABLE Customer
(
CName CHAR(20),
Address CHAR(50),
PRIMARY KEY(CName)
);

CREATE TABLE Order
(
CName CHAR(20),
SName CHAR(20),
ItemName CHAR(20),
Qty CHAR(50),
PRIMARY KEY (CName, SName, ItemName),
FOREIGN KEY(CName)REFERENCES Customer(CName),
FOREIGN KEY(SName)REFERENCES Supplier(SName),
FOREIGN KEY(ItemName)REFERENCES Item(ItemName)
);

最後のテーブル名であるorderが使用できないのは分かってるいるのですが。
それ以外のエラーへの対応がわかりません。
分かる方アドバイスください。お願いします。




510 :NAME IS NULL:2009/04/04(土) 12:09:11 ID:???
>>505

可能性としてはロードバランサーがトップにあって、片側のRACのパスワードファイルが
正しく設定されていないとかかな。

511 :NAME IS NULL:2009/04/05(日) 15:21:30 ID:JiS+iut1
すみません、質問があります。
会社から発行されたチケットを使用してテストを受けようと思うのですが、
会社がチケット番号などから自分のテスト結果を参照することは
可能でしょうか?

512 :NAME IS NULL:2009/04/05(日) 18:25:25 ID:???
可能

513 :NAME IS NULL:2009/04/06(月) 00:56:49 ID:A28vG0H2
>>505
http://otn.oracle.co.jp/forum/message.jspa?messageID=6016756


514 :503:2009/04/06(月) 03:00:44 ID:???
>>513
すみません。これは全然関係ないです。
>>510
すみません。ロードバランサーは使っていません。
ただ、RACが交互に系を切り替えてるような気はします。
そして片方が正しく設定されていないのだと思います。

>>506
OS認証は使っていないはずですが、前任者が環境構築するときに
片系はOS認証、もう片系はOracle認証なんてことをやっちゃってるかもしれません。
そんなことできるのか知りませんが。

515 :NAME IS NULL:2009/04/06(月) 19:14:03 ID:???
>>514
>そして片方が正しく設定されていないのだと思います。

だったら、片側のインスタンスにだけ接続が行くように設定して試してみれば良いやん。
active_instance_count を設定すれば、どちらか片方のインスタンスのみに接続されるようになる。


516 :NAME IS NULL:2009/04/07(火) 01:19:17 ID:???
>>514
ちょっとは自分で学ぼうや。

517 :NAME IS NULL:2009/04/07(火) 10:48:53 ID:???
>>514

ロードバランサーがなくてもリスナーサイドロードパランシングが使われてるんだろ。
いずれにせよ自分のPCにでも各インスタンスに対するTNSエントリを設定してsysで
繋げてみればいい。
それでどっちかでエラーになるのならパスワードファイルを再作成だな。

518 :NAME IS NULL:2009/04/07(火) 11:22:08 ID:???
リスナーサイドロードバランシングw

519 :NAME IS NULL:2009/04/07(火) 22:25:46 ID:???
うむ、投稿した後に間違いに気がついたぞ。
まあ、日本語50音直打ちだから許してくれ〜い。
欧州、そして今はアメリカでDBAとして働いているが、日本語キーボードはいつも俺と共にあるw
英語101キーボードの配列なんかで仕事が出来るかよ。

520 :NAME IS NULL:2009/04/08(水) 17:25:28 ID:epT/t44l
アーカイブログのサイズを調べるSQL文って書けるのかな

521 :NAME IS NULL:2009/04/08(水) 17:48:11 ID:???
書けますん

522 :520:2009/04/08(水) 18:02:13 ID:???
>>521
ありがとうございました。書くことが出来ました。

523 :NAME IS NULL:2009/04/08(水) 19:59:36 ID:???
>>522
ッ!?

524 :NAME IS NULL:2009/04/09(木) 22:13:13 ID:???
使うテーブル全部にアナライズかけたばかりなんだけど、
ルールベースが採用したインデックスが遅かったので、ヒント句で違うインデックス指定したら早くなったんだけど
俺、オラクルに勝ったと思っていい?

525 :NAME IS NULL:2009/04/09(木) 22:16:28 ID:???
analyzeかけたのになんでRBO使ってんの?

526 :NAME IS NULL:2009/04/09(木) 22:34:40 ID:???
あ、コストベースの間違いでした

527 :NAME IS NULL:2009/04/09(木) 22:38:08 ID:???
もうひとつ質問なんですけど、
SQLサーバのテーブル(中身も)をオラクルに入れたいんだけど、

オラクル⇒オラクルだとIMP,EXPだと思うけど
SQLサーバ⇒オラクルだとどういう方式があります?

528 :NAME IS NULL:2009/04/10(金) 04:39:58 ID:???
>>527

格好良いことやりたのならGeneric Connectivity。
力技でやるのならcsvで吐き出したものをローダー使ってぶち込む。



529 :NAME IS NULL:2009/04/10(金) 08:21:34 ID:wKOZtIHP
>>528
ぶち込むとか、カッコええ
男の仕事って感じ

530 :NAME IS NULL:2009/04/10(金) 10:10:39 ID:???
固定長のテキストファイルを読んで
オラクル10gのテーブルに格納したいのですが
一部の項目がCOBOLのパックになってます
この項目をNUMBER型に格納するのに
一番スマートなやり方教えてください

531 :NAME IS NULL:2009/04/10(金) 23:19:33 ID:???
SQL*Loaderの(packed) DECIMALかねぇ?
コボラーじゃないから良くわらんが、分かる人がみれば以下の説明で分かるか?

INTEGER - full-word binary integer (LONG INT in C)
SMALLINT - half-word binary integer (SHORT INT in C)
FLOAT - single-precision floating-point (FLOAT in C)
DOUBLE - double-precision floating-point (DOUBLE in C)
ZONED - a string of decimal digits, one per byte, with the sign
included in the last byte.
(packed) DECIMAL - packed decimal format: two digits per byte, except for the
last byte, which contains a digit and sign.

The equivalent in COBOL is respectively:

INTEGER - S9(9) COMP stored in 4 bytes
SMALLINT - S9(4) COMP 2 bytes
FLOAT - COMP-1 4 bytes
DOUBLE - COMP-2 *** it doesn't work *** 8 bytes
ZONED - S9(x) DISPLAY x being a number
DECIMAL - S9(11) COMP-3

532 :NAME IS NULL:2009/04/12(日) 23:47:38 ID:XwgobUls
質問です。。。

今、oracle bronze10gをもっているのですが、
silver11gを取得するには、silverDBA11gを取得すれば
いいのでしょうか?
それとも、bronze10gなので、silverDBA10gしか受験で
きないのでしょうか?

ご教授よろしくお願いします。

533 :NAME IS NULL:2009/04/13(月) 00:27:22 ID:???
Oracleのサイトに詳しく説明されているのに、なぜ読まないかな。

アホなのか?


534 :NAME IS NULL:2009/04/13(月) 05:51:31 ID:QgB5aUsW

クエリの質問です。
ある結果から、頭一文字で集計することは出来ないのですか?

select count(*),tag from hoge
group by SUBSTR(aaa , 0 , 1) tag

こんなイメージなのですが、
どのようにすればよいのでしょうか。

535 :534:2009/04/13(月) 16:25:47 ID:???

自己解決。
普通に出来ました。

select SUBSTR(aaa , 0 , 1) count(*) from hoge
group by SUBSTR(aaa , 0 , 1)

536 :NAME IS NULL:2009/04/13(月) 22:25:05 ID:919/buMn
アホで〜しゅ

537 :NAME IS NULL:2009/04/14(火) 14:30:04 ID:???
カラムが200こくらいあってレコード数が50万くらいあるテーブルで
ちょっとカラムの数を半分くらい減らそっかな と思って

ALTER TABLE hoge DROP (unko101,unko102, ... ,unko200);

というクエリーを実行したら、ものすごい時間がかかって全然おわらない
んだけど、これをもっと高速にしたいときはどうしたらいいの?
チェックポイントってのが問題なの?
バックアップはとってあるので、チェックポイントとかどうでもいいんです。

538 :NAME IS NULL:2009/04/14(火) 20:50:04 ID:???
>どうしたらいいの?
そういう糞テーブル設計者を呪う。

539 :NAME IS NULL:2009/04/14(火) 21:08:16 ID:BaBqmTPe
どうせコボラーが設計したテーブルなんだろ。
よくあるよ。


540 :NAME IS NULL:2009/04/14(火) 21:19:18 ID:???
>537
遅いのはインデックスの列も削除してるとか、hogeを参照してるセッションがあるとかが原因かもね
カスケードオプションとかの制約とかも中尉。

入れ物を新しく作って入れなおした方が速いかもしれぬ

541 :NAME IS NULL:2009/04/14(火) 21:23:13 ID:BaBqmTPe
>>537
>DROP (unko101,unko102, ... ,unko200);

見た感じ、カラムを200から100に減らすのか?
それだったら、新規にテーブルを作って、INSERT INTO SELECT した方が早いんじゃないかなぁ。
さらに・・・、ディスクに余裕があるならば、旧テーブルと新テーブルで格納するディスクを分ける。
あと、ノーアーカイブログモードにする。
当然、INSET INTO SELECTする時は、パラレルとNOLLOGINGモードで実行な。

処理時間はレコード件数ではなく、テーブル容量に依存する。
上記対策を組み合わせれば、かなり早くなるとは思う。


542 :NAME IS NULL:2009/04/14(火) 21:31:21 ID:???
50万件程度ならなんとでもできる

と思ったらカラムが200もあんのか!そんなにあるとどのカラムが何に使ってるか把握できんだろ
列削除したら動かなくなるプログラムが出てくるんじゃないか?

543 :NAME IS NULL:2009/04/14(火) 22:17:04 ID:???
ありがとうございます。
結局30分ほどほっといてジャンプ読んでたら終わってました。

>>538
すでに実施済みです。

>>539-542
実はこれはほんの序章にしか過ぎなくて、このあとに
1000カラムの100万件が待ち受けてるのでした。(800カラムくらい削る予定)
まさに1000万パワーズです。泣きそうです。
>>541を参考にしてがんばります。

544 :NAME IS NULL:2009/04/14(火) 22:22:06 ID:???
>1000カラム
( д)゚ ゚

545 :NAME IS NULL:2009/04/14(火) 22:57:08 ID:???
>>543

設計者、汎用機上がりだろ?
カラムが1000とかって、RDBMSで絶対にありえない。

546 :NAME IS NULL:2009/04/14(火) 22:57:47 ID:BaBqmTPe
>>543
> 1000カラムの100万件

ワロタww

まぁALTER TABLE DROPした方が楽と言えば楽だけど、その場合はテーブル容量が変わらないから注意してね。
実行後にshrinkしとかないと無駄な領域が増えるばかりでなく、フルスキャンした時にパフォーマンスが劣化するよ。


547 :NAME IS NULL:2009/04/15(水) 00:25:53 ID:???
銀行系のDBだとそういう基地外カラムがあるとは聞くけど、たいしたもんだ

548 :NAME IS NULL:2009/04/15(水) 00:47:05 ID:???
99%、コボラーの犯行だろ。

行連鎖・行移行しまくりなんだろうなぁ。
怖いなぁ。


549 :NAME IS NULL:2009/04/15(水) 04:06:11 ID:???
>>527

Oracle Migration Workbench

550 :NAME IS NULL:2009/04/16(木) 18:39:10 ID:bVm5EM13
CentOS4.5に、Oracle10gを入れようとして、
インストール時に、

Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asiaunx-2
   Passed
All installer requirements met.

というメッセージが出ています。
CentOSは、動作保証対象外のOSだとは思うのですが、インストールする方法はあるんでしょうか?


551 :NAME IS NULL:2009/04/16(木) 18:51:12 ID:???
/etc/redhat-release

552 :NAME IS NULL:2009/04/16(木) 18:54:28 ID:???
>>550

./runInstaller -ignoreSysPrereqs


553 :NAME IS NULL:2009/04/16(木) 18:54:42 ID:???
-ignoreSysPrereqだっけ

554 :550:2009/04/16(木) 19:21:54 ID:bVm5EM13
ありがごうございます。
./runInstaller -ignoreSysPrereqs
./runInstaller -ignoreSysPrereq
試しましたが、結果は変わりませんでした・・

555 :NAME IS NULL:2009/04/16(木) 19:51:28 ID:???
だから、/etc/redhat-releaseをRHEL4のものに書き換えればいい。


556 :NAME IS NULL:2009/04/16(木) 19:54:49 ID:???
とりあえず、そこで詰まるヤツにCentOSにオラクル入れるの無理だろ。
おとなしくミラクルでも使っとけ。

557 :550:2009/04/16(木) 20:36:54 ID:bVm5EM13
お騒がせしてすみません。
結局、インストーラの、iniファイルに手を加えて、
そこのエラーは通しました。

まだ、インストール成功していないのですが・・・、
上からの指示でなければ、違うOSにするんですけど・・・

558 :NAME IS NULL:2009/04/16(木) 21:43:44 ID:???
centOSかよ・・・・・

同じ無料LinuxOSだったら、Oracle Enterprise Linux の方が相性が良いのに。


559 :NAME IS NULL:2009/04/16(木) 22:08:57 ID:???
>   Passed

なんだ。エラーはそこじゃないな。


560 :NAME IS NULL:2009/04/16(木) 22:35:02 ID:???
10g、11g RAC(ASM、OCFS2の両方)で動作確認した事あるよ。
気を付けるとしたら、ちゃんとパッケージが入っている事ぐらいだったか。
それもyum使えば入るしね。


561 :NAME IS NULL:2009/04/16(木) 23:15:29 ID:???
>>550

これじゃね?

http://otn.oracle.co.jp/forum/thread.jspa?threadID=35004153&tstart=0


562 :NAME IS NULL:2009/04/17(金) 06:03:44 ID:???
>>561

いくらなんでもXでつまづく事はねぇんじゃね?

563 :NAME IS NULL:2009/04/17(金) 09:13:56 ID:???
しかし何故その上司はCentOSにオラクルを入れよと命じたのか。
サポートされてないのに。
教育のため??

564 :550:2009/04/17(金) 19:29:28 ID:kWFhDTER
550です。お騒がせしてすみませんでした。
Linux系の環境をいじった経験がなく、非常に混乱していました。
GUIでインストーラを立ち上げて、インストールすることができました。
皆さん、ありがとうございました。

CentOSにOracleというのは、教育のためというわけではないのですが、
諸事情あって、そういうことになってしまいました(汗)

565 :NAME IS NULL:2009/04/17(金) 23:55:14 ID:???
で、原因はなんだったんだ?もしかしてXだったかの・・・?

566 :NAME IS NULL:2009/04/19(日) 11:04:10 ID:QT17jzFz
911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから



912 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 10:48:51
911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから



913 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 10:49:31
912  名無しさん@お腹いっぱい。 [sage]  2009/04/19(日) 10:48:51  

911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから


914 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 10:57:14
913 名前: 名無しさん@お腹いっぱい。 Mail: sage 投稿日: 2009/04/19(日) 10:49:31
912  名無しさん@お腹いっぱい。 [sage]  2009/04/19(日) 10:48:51  

911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから



915 :名無しさん@お腹いっぱい。 [] :2009/04/19(日) 11:01:50
914 :名無しさん@お腹いっぱい。:2009/04/19(日) 10:57:14
913 名前: 名無しさん@お腹いっぱい。 Mail: sage 投稿日: 2009/04/19(日) 10:49:31
912  名無しさん@お腹いっぱい。 [sage]  2009/04/19(日) 10:48:51  

911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから


567 :NAME IS NULL:2009/04/20(月) 10:09:06 ID:???
今までSQL Serverしか経験がなく初めてオラクルのDBを使用します。
会社指示で勉強ついでにオラクルマスターの資格も取れればと思いWindows上で環境を作ろうとしています。
オラクルマスターの参考書にバージョン11gの30日分の体験版DVDが同梱されていたのでひとまずそれを使っていればいいかなと予定はしているのですが、
使用期限切れが心配なため、無償で期間制限ない体験版をさがしています。
バージョンは11もしくは10.2のどちらでもかまいませんので教えていただけませんか?
本来会社でライセンス買ってくれればいいんですが実務でなく勉強だけなら買えないといわれたのでこんな状況になってます。

568 :NAME IS NULL:2009/04/20(月) 11:02:52 ID:???
つ[Oracle 10g Express Edition] (無償だが体験版に非ず)

569 :NAME IS NULL:2009/04/20(月) 12:34:59 ID:???
体験版は体験版に非ず

570 :567:2009/04/20(月) 13:05:30 ID:???
返信ありがと。
とりあえずしばらく使えるものがあればいいのでExpress Editionでもいいかと思いました。
制限の具合はこれから確認してみます。

571 :NAME IS NULL:2009/04/20(月) 20:06:00 ID:???
>>570
Oracleのサイトに行けば、機能制限が無いインストーラーをダウンできるよ。


572 :NAME IS NULL:2009/04/20(月) 21:31:24 ID:E/kjbKAy
米Oracleは4月20日(現地時間)、米Sun Microsystemsを買収したと発表した。
金額は1株あたり9.50ドルで買収総額は56億ドルになる見込み。

- Oracle Buys Sun
http://www.oracle.com/us/corporate/press/018363


573 :NAME IS NULL:2009/04/20(月) 22:23:15 ID:???
資格目的ではなく、Oracleの勉強をしようと思っています。
OracleDatabaseServerの導入・構築・保守(バックアップ・リカバリ)など一通りできるようになりたいのですが、
オススメの本とかありますか?

574 :NAME IS NULL:2009/04/20(月) 22:40:30 ID:???
マニュアル。

575 :NAME IS NULL:2009/04/20(月) 22:51:37 ID:???
マニュアルはどこでダウンロードできますか?

576 :NAME IS NULL:2009/04/20(月) 23:31:10 ID:5HLI7OQp
どこでって・・・・・(汗)



577 :NAME IS NULL:2009/04/21(火) 02:02:50 ID:???
>>567

全部とは言わないが、>>2ぐらいは読むと大きなヒントがあるかもな。

578 :NAME IS NULL:2009/04/21(火) 09:20:40 ID:???
>>577
30日以上使うつもりの奴に「30日経っても使えるよ」てのはつまり
「バックレてそのまま使えよ」と勧めてるわけ?

579 :NAME IS NULL:2009/04/21(火) 17:49:57 ID:???
>>571
一応言っとくと、ライセンスなしで使い続けてると・・

580 :550:2009/04/21(火) 18:45:13 ID:9X+HJO0M
>>565
最終的には、
Xだったと言えば、Xだったのですが、
PCにハード面の問題があったようで、Xにしたときに画面が真っ暗になってしまい、
混乱してしまった感じです。

581 :NAME IS NULL:2009/04/21(火) 19:56:08 ID:???
>>578

http://www.oracle.com/technology/software/popup-license/standard-license.htm

日数の制限はないみたいだけど。


582 :NAME IS NULL:2009/04/21(火) 22:37:53 ID:???
>>573
大手ベンダのSEをやっています。
ORACLEの導入、構築、保守、バックアップ、リカバリなどについて
後輩には、こんな感じで指導してます。長文すみません。

1)CPU 2GHz以上、メモリ2GB以上、HDD250GB以上のWindowsパソコンを1台用意する。
2)日本および米国のOTNにIDを取得し、複数バージョンのORACLEのインストーラを入手する。
3)VMWareでIDを取得し、VMWare Server Console 1.xを入手する。
4)Windows Server 2003 R2、Linux、Solaris x86等をVirtual Machine(VM)として構成する。
5)VMをコピーしてORACLEをインストール、インスタンス作成といった手順を、気の済むまで繰り返す。
6)入手しても問題なさそうなDMPファイル(デモデータとか)をインポートして動作を確認したり、壊したり、復元したりする。
7)分からない用語があれば、ググって調べる。ダメなら本屋で立ち読みする(巻末の索引を利用する)。
  そのうち「この本は、どうしても欲しい」と思う書籍が出てくるはず。それは仕方ないので買う。

後輩に指導しているポイント:
「英語を無視するな」
「ORACLEのインストーラやパッチを、コレクションしろ」
「ORACLEの基礎的な勉強は家でしろ。待ち時間が多いから、同時にゲーム、音楽、読書、映画」


583 :NAME IS NULL:2009/04/21(火) 22:42:42 ID:???
パッチは仕事で扱ってないと手に入らなくね?

584 :NAME IS NULL:2009/04/21(火) 22:57:39 ID:???
>>582

どうしようもない馬鹿だな。釣りにしては下手だし。


585 :NAME IS NULL:2009/04/21(火) 23:09:47 ID:???
>>582
オラクルやってく上で、英語は大事だが、その他2つは・・
コレクションとかもう意味不ww

586 :NAME IS NULL:2009/04/21(火) 23:35:02 ID:???
タメになった

587 :NAME IS NULL:2009/04/22(水) 00:18:54 ID:???
ダメになった

588 :NAME IS NULL:2009/04/22(水) 00:43:01 ID:???
もうおしまいだ。

589 :NAME IS NULL:2009/04/22(水) 00:44:22 ID:???
2番目の指導は問題だな

590 :NAME IS NULL:2009/04/22(水) 11:20:58 ID:???
インストーラのコレクションはマジで大事だな。
二度と手に入らないバージョンとかあるし。

591 :NAME IS NULL:2009/04/22(水) 21:09:58 ID:8oVKJNzM
初心者で質問です。
EMCAでDatabase Controlをセットアップしているのですが、
SYSのパスワードが分かりません
Oracle11gのインストール時にデータベースは作成しませんでした。



592 :NAME IS NULL:2009/04/22(水) 21:12:23 ID:???
>>591
( ゚д゚)

(゚д゚)

593 :NAME IS NULL:2009/04/22(水) 21:53:55 ID:???
>>591
データベースは作成しませんでした → SYSのパスワードが分かりません

594 :NAME IS NULL:2009/04/22(水) 22:12:17 ID:8oVKJNzM
データベースを作成しないとSYSのパスワードは作成されないでしょうか?
ソフトウェアのインストールのみ行ったのですが、そこが問題だったのでしょうか?

595 :NAME IS NULL:2009/04/22(水) 22:27:50 ID:???
データベースをWebベースのGUIでコントロールするEMをコンフィグするのがemcaです。
データベースがないのにemcaを行う意味が分かりません。

596 :NAME IS NULL:2009/04/22(水) 22:30:35 ID:???
Oracle 11g です。
RMANを使ってバックアップ→リストアを行おうとして失敗しました。
コントロールファイルはリストアでき、表領域はリストア出来ませんでした。

んで、制御ファイルを再構築しDBをオープンし復旧できたと思っておりました。
下手に壊してしまう前にエクスポートでデータを取っておこうと思い
エクスポートを実行した所 「ORA-25153:一時表領域が空です。」と出ます。
復旧できてませんでした。

select * from v$TEMPFILE で確認したところ何も出てきません。

今まで一時表領域に割り当てられていたTEMP01.DBFは存在するのですが
[すでに存在するTEMP01.DBFを一時表領域に割り当てる] ような事は出来ますでしょうか?

ググると一時表領域の再作成や追加ばっかり出てきて、すでにあるファイルに割り当てる
様なのは見つけられませんでした。

こういう場合はTEMP01.DBFを削除して再作成すべきなのでしょうか?

オラクルは何度も使ったことはあるのですが、構築や保守の作業は初めてで
四苦八苦しております・・・。

よろしくお願いします。

597 :NAME IS NULL:2009/04/22(水) 22:31:09 ID:???
超新星現るw
ゆとりの多い世の中やね。

598 :597:2009/04/22(水) 22:35:20 ID:???
超新星は>>596のことじゃないからな。
とりあえず一時表領域は再作成しとけ。
元の名前に戻したかったら、別名で作成→元のを削除→元の名前で作成→別名のを削除、でOK

599 :NAME IS NULL:2009/04/22(水) 22:39:35 ID:???
一時表領域だったらデータも入ってないんだし、
create tablespace ... reuse でいいんじゃないのかなー



600 :NAME IS NULL:2009/04/22(水) 23:06:10 ID:???
>>598 >>599
598さんのやり方で試してみます。

DBが起動してる状態でTEMP01.DBFが削除できれば
リネーム考えずに一発で作れそうかなぁとか考えておりますw

ありがとうございました!

601 :582:2009/04/23(木) 07:21:41 ID:???
仕事でむしゃくしゃしてやった。
酔っ払っていろいろ書いた。後悔はしていない。


602 :NAME IS NULL:2009/04/23(木) 08:13:19 ID:???
反省はしとけ

603 :NAME IS NULL:2009/04/23(木) 10:00:23 ID:???
>>601
あんたは間違ってない。大丈夫だ。

604 :NAME IS NULL:2009/04/23(木) 21:11:49 ID:6YaSPAG4
公園で裸になったりもするな

605 :NAME IS NULL:2009/04/24(金) 18:49:27 ID:7Do46R/a
1つ質問させて下さい。
あるユーザがテーブルに更新を掛けていてそのテーブルを参照されたくない場合、
トランザクションが完了するまでselect文をロックするといった設定は可能なのでしょうか。

もし可能であればその設定の方法と解除の仕方を教えていただけませんでしょうか。

606 :NAME IS NULL:2009/04/24(金) 20:35:44 ID:???
他マシンでのリカバリテストをしようと思うんですが
Oracleのバージョン、ディレクトリ構造、SID等が全て一緒だけど
OSが微妙に違う(Windows2003EE(MSCE)→2003SE)場合の
リカバリ時、何か気をつけることがありますか?
DBIDくらいかなと思っているのですが。


元DBのコールドバックアップをコピーしてきて
先DB上でのリカバリです。

607 :NAME IS NULL:2009/04/24(金) 20:48:23 ID:???
DBIDなんて、同じマシンのときしか影響しないんじゃなかったかな。

608 :NAME IS NULL:2009/04/24(金) 21:56:49 ID:???
>>605
2人目に見せたくないのは、
更新していないレコードを含む全レコードなの?
更新中のレコードだけなの?

後者なら、1人目も2人目も
SELECT ナントカ FOR UPDATE NOWAIT
で大丈夫だと思うんだけど。

あと、前者なら、1人目が
UPDATE テーブル名 SET キー=キー
を最初にかましておいてから、
SELECT ナントカ FOR UPDATE NOWAIT
で本筋の処理に入るのかな。

酔っ払っているし、
ORACLE起動したくねーから、よくわかんね。

609 :NAME IS NULL:2009/04/24(金) 22:40:58 ID:???
>>606

窓だったら大丈夫じゃね?
注意する点としたら、oradim使ってインスタンス(サービス)作る所ぐらいか?
DBIDも同じで上がるよ。

610 :NAME IS NULL:2009/04/24(金) 23:14:16 ID:???
>605

>>608の言うことを試してみればいいよ。
ForUpdateならDML扱いだから、取得しようとする行が先客によってロックかけられていたら、
自分のSELECTは先客がロック解除するまで結果が返ってこない。


611 :NAME IS NULL:2009/04/25(土) 00:07:40 ID:f+YC/agg
>>608のとおりであれば
返ってこないというか即エラーだな

612 :NAME IS NULL:2009/04/25(土) 00:19:58 ID:???
試せばすぐわかることだ。

エラーだったか、砂時計で待ちになったか忘れたけど、こんなことはマルチユーザのシステムでは考慮するのは常識だし
うまくいってる既存のシステム真似ればよいだけの話。

613 :NAME IS NULL:2009/04/25(土) 00:38:48 ID:???
>605 です

現状、単純な処理のクエリーが戻ってこないという事が頻繁に発生しておりまして
SQLトレースからデットロックが発生しているUPDATE文までは発見できたのですが・・

クエリーが戻ってこない現象がselect文で発生しているため、ロックとクエリーが
戻ってこない現象は関連していないと考えていました。

完全に手詰まり状態でしたが、ご回答して頂いた皆様ありがとうございました。

614 :NAME IS NULL:2009/04/25(土) 00:45:21 ID:???
>613
そりゃ、完全に設計ミスだよ。
自分が設計したのなら、大いに反省すべきだし、
他人が設計したのならそいつに責任全部押し付けてもOKなくらい基本的かつ重要な事。
普通の中規模以上のシステムの設計書ならロックについてなんらか書かれているはず。

615 :NAME IS NULL:2009/04/25(土) 00:46:45 ID:f+YC/agg
つーかデッドロックじゃなくてただのロックだろ。
デッドロックならどっちかのトランザクションにエラーが返る。

616 :NAME IS NULL:2009/04/25(土) 01:02:21 ID:uRjQFxsB
>>613
デッドロックとは何かを勉強してね。


>クエリーが戻ってこない現象がselect文で発生しているため
単に処理が重いんじゃないのか?
StatsPackとかSQL詳細レポートとか分析してみたか?


617 :NAME IS NULL:2009/04/25(土) 01:16:53 ID:???
アラートログに同様のデットロックが複数回発生しておりました。
ORA-00060:Deadlock detected.

すべてのデットロックは1つのUPDATE文が原因です。

ご指摘の通りまったくもって勉強不足でした。出直してきます。

618 :NAME IS NULL:2009/04/25(土) 01:49:03 ID:v/emdwre
>>366
巨人の育成って坂本みたいな小物や数年でいなくなりそうな中継ぎのこと?

中日は川上岩瀬福留と超一流を育てた実績があるのよ。
残念だけど巨人にこいつら以上の選手を育てる可能性は皆無なのよ。

619 :NAME IS NULL:2009/04/25(土) 01:51:10 ID:???
select for updateでnowaitつけずに悲観ロックで設計してんじゃね?
ちなみに今某富士〇が設計しているアプリがあるんだが、そいつが
悲観ロック使っていやがる。
こんなんでパフォーマンス出せという方が無理だろ。


620 :NAME IS NULL:2009/04/25(土) 02:27:11 ID:???
>619
それだけの文章からはパフォーマンスが出せない理由は読み取れないだろ
ロックが致命的なボトルネックとなっているなら指摘して直させればいいし。
設計が絶対ならロック以外のところは可能な限りのパフォーマンスを出しているエビデンスを提出すればいい。

621 :NAME IS NULL:2009/04/25(土) 04:28:13 ID:???
勿論こんなアホなロジックのアプリ作ってんじゃねぇって指摘してるぜ。
だが奴らは取りあえず納品さえすましちまえばいいってスタンスだから、
全く聞く耳もたねぇけどな。
とりあえず統合テストで問題点浮き彫りにして、直させるつもり。


622 :NAME IS NULL:2009/04/25(土) 07:40:43 ID:???
>>605>>613>>617
アレ?質問の内容が変わったよね?
焦点がぼんやりしてるような気がする。
どれか1つについて優先して解決したい旨を示して、質問してね。
個人的には一歩一歩前進すべきだと思う。
いきなりdを質問されても、ズレた回答しちゃうからさ。

a:現在発生したデッドロックを解除したいが方法が分からないので知りたい
b:デッドロックを解除しても、SELECT文がまだ遅いので、SELECT文を見直したい
c:今回デッドロックが発生した原因を確定したい
d:将来的にデッドロックが発生しないように修正したい


623 :NAME IS NULL:2009/04/25(土) 08:05:57 ID:???
aよりcが先だろ、と思うかもしれないけど、
ORA-00060が発生した日時には、
トレースファイルも出ているので、ちょっと目を通せば、
cの大体の目星についてピンと来る事が多いです。

624 :NAME IS NULL:2009/04/25(土) 16:54:12 ID:???
>>609
試してきますた。
DBIDのセットが必要でした。後は想定通りの手順で
全く問題なかったお。

625 :NAME IS NULL:2009/04/26(日) 05:12:00 ID:???
テーブルが分析済みかどうかって、何見ればわかるんだっけ?
あと分析中ってselectとかinsertとかやっちゃっても大丈夫?

626 :NAME IS NULL:2009/04/26(日) 06:27:11 ID:???
>>625
xxx_tablesのlast_anaryzedを確認
分析中のsql実行も問題ないけど大量insertしたりしたら
折角の分析結果が 以下略

627 :625:2009/04/26(日) 06:55:00 ID:???
>>626
ありがとう。
INSERTとかもちょっとだけしかしませんよ。ちょっとだけ。先っぽだけならセーフ。

628 :NAME IS NULL:2009/04/26(日) 23:03:15 ID:???
>>627
何かエロいな。


629 :NAME IS NULL:2009/04/27(月) 15:56:03 ID:PFrga0Rn
hoge,piyo,fuga はすべてNUMBERで、piyo,fuga がセットでプライマリキー
このほかにカラムが100ぐらいありデータ数は30万ほど というテーブルunkoがあります。
このとき、次のクエリがだいたい10秒くらいかかります:
 SELECT MAX(hoge),COUNT(hoge), MAX(piyo),MIN(piyo) FROM unko;

これを一瞬で終わらせたいんだけど、どういうチューニングをしたらいいの?

単純に、hoge と piyo それぞれにB-TREEインデックスをつけてみたけど
2割程度しか改善されなかった
表を分析させたらむしろ遅くなったという。

630 :NAME IS NULL:2009/04/27(月) 23:56:11 ID:UtcGIzOX
>>629
count は単純にレコード件数を知りたいだけか?
であれば、count(*) の方が良い。

hoge に not null 制約を付けてないで、count(hoge) をやると、テーブルフルスキャンが発生する可能性大。


631 :NAME IS NULL:2009/04/27(月) 23:57:36 ID:UtcGIzOX
それか、マテリアライズド・ビューを使えば瞬時に終わるけどな。


632 :NAME IS NULL:2009/04/28(火) 01:48:05 ID:???
>>629
ハード更改

633 :NAME IS NULL:2009/04/28(火) 05:41:22 ID:???
>>629
hogeとpiyoにb-treeをつけたのなら、個別にやったら速くなってない?
select max(hoge) from unko;
select count(hoge) from unko; -- これは遅いかも
select max(piyo) from unko;
select min(piyo) from unko;


634 :NAME IS NULL:2009/04/28(火) 14:23:57 ID:VWUlZDrL
インデックスってみんなどんな名前にしてる?

635 :629:2009/04/28(火) 14:52:31 ID:???
>>633
SELECT MAX(hoge) FROM unko;
SELECT COUNT(*), MAX(piyo),MIN(piyo) FROM unko;
の2行に分けたら一瞬でおわるようになりました。

なんか、Oracleってあんまり賢くないんだね。これから気をつけます。

636 :NAME IS NULL:2009/04/28(火) 15:16:22 ID:???
Oracleが賢いと言うつもりはないけど、
最初のクエリを一瞬で処理できる製品は見たことないです

637 :NAME IS NULL:2009/04/28(火) 15:19:02 ID:???
>SELECT COUNT(*)
こそっと書き換えてるじゃねぇかw
これが原因だろw


638 :629:2009/04/28(火) 15:59:39 ID:???
>>637
いやまあそうなんだけどさ、いろいろ組み合わせててさ

【スロゥリィ】
 SELECT MAX(hoge),COUNT(hoge) FROM unko;
 SELECT MAX(hoge),COUNT(*) FROM unko;
 SELECT COUNT(hoge),MAX(piyo),MIN(piyo) FROM unko;

【ラディカルグッドスピード】
 SELECT MAX(hoge) FROM unko;
 SELECT COUNT(*) FROM unko;
 SELECT COUNT(piyo),MAX(piyo),MIN(piyo) FROM unko;
 SELECT COUNT(*),MAX(piyo),MIN(piyo) FROM unko;
となったわけですよ。

MAX(hoge),COUNT(hoge) の組み合わせが遅いのは意外だった。

639 :629:2009/04/28(火) 16:02:08 ID:???
>>636
MySQLだと一瞬なのですわ。
まあ内部で常に個数、最大、最小、平均などを持ってるらしいから
こういうのには強いのかも

640 :NAME IS NULL:2009/04/28(火) 19:45:17 ID:???
>>639
おぬし、あんまり賢くないな。
そこでマテビューですよ。

641 :NAME IS NULL:2009/04/28(火) 20:38:37 ID:???
内部で勝手にそんなもん持ってたら
更新系のレスポンスが最悪なんじゃね?
無料のDBMSをまともに使う気がないから知らんが。

642 :NAME IS NULL:2009/04/28(火) 22:10:13 ID:???
MySQLのMyISAMなら件数持ってるからCOUNT(*)は速いけど
COUNT(hoge)はhogeが主キーでない限りだめだった気がする。
MIN、MAXはほかの製品と同じ。

>>639 はたぶんクエリキャッシュにヒットしたんだと思うよ
二回目以降は一瞬。


643 :NAME IS NULL:2009/04/28(火) 22:28:37 ID:???
俺流インデックスの命名法

プライマリキーインデックス:PK_テーブル名
その他のインデックス:IDX1_テーブル名、IDX2_テーブル名、IDX3_テーブル名

テーブル名はできるだけ20バイト以内にして末尾にTBLを付ける。
PRODUCTTBLとか、そんな感じ。
テーブル名を「T_ナントカ」、インデックスを「I_ナントカ」とする流儀もあるようだけど、
俺には馴染めなかった。


644 :NAME IS NULL:2009/04/28(火) 22:29:38 ID:???
>>639伝説www

645 :NAME IS NULL:2009/04/28(火) 22:42:11 ID:???
命名基準は客先によって歴史的な文化があるから
慣れるまで抵抗あるんだよな。
常に俺ならこうする・・みたいな葛藤と闘いつつも、
でも、知らぬ間に馴染んでいってる。

ところが汎用機の文化をそのまま取り入れたような標準化には
いつまで経っても馴染めないね。。
8文字maxでイミフな記号、連番の羅列とか。。大企業ほど多い

646 :NAME IS NULL:2009/04/28(火) 22:52:52 ID:???
デモとか研究とかじゃなく、
運用中の実データで扱ったテーブルの中で
過去最大のレコード数ってどれぐらい?

俺、370万行。


647 :NAME IS NULL:2009/04/28(火) 22:53:38 ID:???
>その他のインデックス:IDX1_テーブル名、IDX2_テーブル名、IDX3_テーブル名
カラムインデックスなら、カラム名もつけるのか?

648 :NAME IS NULL:2009/04/28(火) 22:54:44 ID:???
テーブル:T_   とらんざくしょん
マスタ:M_     ますた
ビュー:V_     びゅー
ストアド:P_    PLSQL
主キー:PK_   ぷらいまりきー
索引:IX_     いんでっくす

こんな感じのが大半だな。テーブル名が連番なのもあるが
それはそれで慣れたら開発の入力がめちゃ速くてラクだ。

論外なのは日本語使ったテーブル名。効率悪いわ気持ち悪いわ・・・

649 :NAME IS NULL:2009/04/28(火) 23:04:02 ID:???
>>646

20億件くらい。これくらいは普通だと思う。



650 :NAME IS NULL:2009/04/28(火) 23:12:07 ID:???
>>647
>カラムインデックスなら、カラム名もつけるのか?

カラムインデックスのとき、カラム名は付けない。
検討したけど冗長と判断した。

テーブルの定義は別途EXCELで資料化してて、
そっちのほうに、インデックスのカラムを書いてる。
そのEXCELには
CREATE TABLE文とCREATE INDEX文を
自動生成させる機能がある。
まあ10年ぐらい前から良くある話。

651 :NAME IS NULL:2009/04/28(火) 23:20:38 ID:???
>>649
えええ。普通じゃないでしょ。
1テーブルで20億行なんだよね?
履歴というコンセプトだと仮定しても
1日に10万行発生で2千日かかるよ。

リレーショナル的に、きちんとクエリに使うるの?


652 :NAME IS NULL:2009/04/29(水) 01:12:20 ID:???
Oracleなら億は普通じゃね?
20億でも異常だとは思えない。

653 :649:2009/04/29(水) 01:44:09 ID:???
ちょっと金融系のシステムをやるとそれくらいにはすぐなっちゃうんだな。

パーティション表は必須になるし、統計情報とか実行計画とかにもうるさくなるよ。


654 :NAME IS NULL:2009/04/29(水) 04:35:42 ID:faefKd13
お前等は素人かよ。

レコード長がどのくらいか解らない状態で、テーブルの件数うんぬんの話をするなっての。

Oracle屋だったら、テーブルサイズで物申せ。


655 :NAME IS NULL:2009/04/29(水) 04:53:44 ID:faefKd13
巨大なテーブルに関して、統計情報は取らないな。

初期化パラメータなりを調整してインデックスを使用した場合のコストを低くしたり、
ヒント句をつけて実行計画をコントロールするようにしてる。


656 :NAME IS NULL:2009/04/29(水) 10:51:50 ID:???
>>652
>>653
へええ。勉強になった。ありがとう。

>>654
テーブルサイズで議論すると
BLOB次第でどうとでもなってしまうと思った。
BLOBについては俺は、あまり興味が無い。

一応聞くけど、あなたの経験した最大の
テーブルサイズは幾らですか?
俺、1500MB。BLOB列なし。370万行。


657 :649:2009/04/29(水) 13:16:54 ID:???
素直にストレージの大きさはどれくらいだったかを聞けばいいのに・・・

俺の関わったシステムは2TBくらいだったよ。36GBx80本。
レコード長としては大きくない。


658 :NAME IS NULL:2009/04/29(水) 21:06:36 ID:???
思い出したくもないが、ストレージのサイズで言えば1本64GBで総計100TB越え、LOBなしで1テーブル30GBとか普通のDBやってたなあ・・

659 :NAME IS NULL:2009/05/01(金) 16:59:56 ID:???
e-deliveryでzip落とせる?

ずっとInternal Server Errorなんだけど。

660 :NAME IS NULL:2009/05/02(土) 21:41:14 ID:???
e-deliveryで
Oracle Database 10g Release 2 (10.2.0) JP Media Pack
for Microsoft Windows x64
を5/2 21:00〜から落としてるけど、特に問題は無いです。
Internal Server Errorは発生してないです。

661 :659:2009/05/03(日) 00:02:42 ID:???
今試したら問題なく落とせた。
サンクス!

662 :NAME IS NULL:2009/05/03(日) 10:43:01 ID:blqLN5nN
64ビットのLinuxに11gをインストールしました。その後sqlplusを起動しようとすると、
ORA-12162: TNS:net service name is incorrectly specified
が出てログインできません。ユーザ名は11gをインストールする際にインストーラを起動した
ときのユーザ名です。パスワードも同じ。
Net Configuration Assistantというのを使って設定をしないとだめなのでしょうか?
どうかよろしくお願いします。



663 :NAME IS NULL:2009/05/03(日) 10:45:05 ID:???
sqlplus "/ as sysdba"

でローカル接続できない?
これだとリスナ関係ない

664 :NAME IS NULL:2009/05/03(日) 10:54:22 ID:???
04/29 に EBS の新リリースが出たから ( 12.1.1 ), こぞって落としに来てるんだと思う.
一通り落として 50GB 程度あるし.
US 側の E-Delivery でしかまだ公開してなくて, 大体 US の昼前から夕方にかけて
の時間帯 ( 東部か西部かとか面倒なこと聞くなよ w ) に激烈に重いのは多分これ.
日本時間の 04/30〜05/02 あたりまでは結構 500 出てた.
04/30 から映画観つつ落とし続けてるけどまだ揃わん ...

665 :NAME IS NULL:2009/05/03(日) 11:07:32 ID:blqLN5nN
>>663
ありがとうございます。
それでやったのですが、同じようにORA-12162がでてログインできませんでした。
netcaで設定しようとしたのですが、その設定もインストール時に終わっていたようです。
一つ気になるのは、インストールを普段のユーザでやったことです。Oracleという名前の
ユーザも作成してないし。これが問題でしょうか?


666 :NAME IS NULL:2009/05/03(日) 12:08:26 ID:???
ファイルアクセスは?
umaskの設定してないとか?
Oracleユーザの$HOMEにある.bash_profileに下記内容を追加
umask 022

667 :NAME IS NULL:2009/05/03(日) 13:38:38 ID:???
なにもしてなきゃ、umaskは022だろ。
>ユーザも作成してないし
ユーザ名は何でも良いけど、そのユーザに対して、
インストールグループ(ex.oinstall)をプライマリとして、
DBAグループ(ex.dba)をセカンダリとして、
属させないとダメだよ?


668 :NAME IS NULL:2009/05/03(日) 16:53:52 ID:???
Oracle 11g Database インストール

1. ユーザ・グループの作成(例)

Oracleインベントリ・グループの作成
# groupadd -g 200 oinstall
OSDBAグループの作成
# groupadd -g 201 dba
Oracleユーザの作成
# useradd -g oinstall -G dba -u 600 oracle

2. Kernelパラメータの設定下記内容を/etc/sysct.confに記載する。設定反映には再起動が必要。

kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
fs.file-max = 102429
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

3. limit.confファイルの修正 Oracleユーザに対してファイルディスクリプタとプロセス数の上限を緩和する。

/etc/security/limits.confに記載する。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

4. プロファイルの設定 Oracleユーザがログインした場合にファイルディスクリプタとプロセスの上限を指定するよう変更を行う。(limit.confで指定した上限にする。)

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

5. インストールするディレクトリの作成マニュアルに記載してある同一のディレクトリにインストールするためディレクトリを作成する。

# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app
# chmod -R 775 /u01/app

6. umaskの設定 Oracleユーザの$HOMEにある.bash_profileに下記内容を追加

umask 022

7. Oracle Universal Installerを使用したインストール
なお、ローカルのX画面上からインストールを前提としている。
1. Oracleユーザでログインし、下記環境変数を指定。

ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE

669 :NAME IS NULL:2009/05/03(日) 20:43:31 ID:???
>>665
ORACLE_SID設定してないと出るエラーらしい

$ unset ORACLE_SID
$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.7.0 - Production on Sun May 3 20:42:46 2009

Copyright (c) 1982, 2008, Oracle. All rights reserved.

ERROR:
ORA-12162: TNS:net service name is incorrectly specified

670 :NAME IS NULL:2009/05/03(日) 21:03:19 ID:blqLN5nN
665です。ありがとうございます。
色々いじってるうちになんだか怪しくなってきたので、OSのインストールから再度やり直してみます。
668と669に書いてもらったのは参考にさせてもらいます。ありがとうス。


671 :NAME IS NULL:2009/05/03(日) 21:20:48 ID:???
OSからかよwwww

672 :NAME IS NULL:2009/05/04(月) 17:49:28 ID:uyHZ9lk2
11gで、文字コードがAL32UTF8なDBにJDBCでアクセスした場合、
Java上の文字列のコードポイントがそのままDBに入る、
すなわちコードポイントの変換は一切行われず、よって文字化けもしないと
考えていいのでしょうか?

また、OracleはNFD正規化文字に対応しているのでしょうか?

よろしくお願いします。

673 :NAME IS NULL:2009/05/04(月) 18:43:29 ID:???
>>672
unicodeとutf8の変換は発生するが基本的にAL32UTF8が推奨。

674 :NAME IS NULL:2009/05/04(月) 18:49:52 ID:???
推奨って誰の?理由は?

675 :NAME IS NULL:2009/05/04(月) 21:24:27 ID:???
DBのチューニング本っていうとこれだっていうのが
あれば教えてください。

676 :NAME IS NULL:2009/05/04(月) 23:09:26 ID:uyHZ9lk2
>>675
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05743-02/toc.htm

677 :NAME IS NULL:2009/05/05(火) 23:58:26 ID:hdZ976TQ
665です。
OSのインストールからやり直しました。VmwareをインストールしてLinuxをインストールして、
Oracleをインストールしました。でもやっぱりORACLE_SIDが設定されてません。
これはどこで設定し、どういう値になるべきなのでしょうか?
Oracleのインストールは668を参考にしてやりました。
よろしくお願いします。


678 :NAME IS NULL:2009/05/06(水) 00:27:20 ID:???
>>677

ORACLE_SIDは普通に環境変数で設定します。
バイナリインストール時にデータベース作成を選んでいたのなら、
そこで指定した値を自分で環境変数に書き込みます。

679 :NAME IS NULL:2009/05/06(水) 00:28:57 ID:/9mrt7ht
>>677
バイナリインストール時にデータベース作成をしてませんでした。
データベースを作成しなくてはだめですか?


680 :NAME IS NULL:2009/05/06(水) 00:57:24 ID:???
長引きそう
LinuxでOracleを動かすためには、
以下の環境変数を正しく設定する必要があります

ORACLE_BASE
ORACLE_HOME
ORACLE_SID
ORA_NLS10
NLS_LANG
PATH
LD_LIBRARY_PATH

あなたが今から作りたいデータベースの名前を決めて
それをORACLE_SIDに設定してください

681 :NAME IS NULL:2009/05/06(水) 01:09:49 ID:???
>>677
そんなところで躓くようなら、OSのこととか、もっと基礎を勉強してからVMにオラクルとかをやるべき。
どうしてもオラクルに触りたいならまずWindowsからにするとか。

682 :NAME IS NULL:2009/05/06(水) 02:06:28 ID:???
>>680

ORA_NLS10 と NLS_LANG は必須ではないな。


683 :NAME IS NULL:2009/05/06(水) 13:46:28 ID:???
Oracle10G DBサーバーで、OSはUNIX(AIX)。
クライアントはWindowsXP

DBサーバー上にある外部実行ファイルを、クライアント側から起動かけたいんですけど
「dbms_schedulerパッケージ」を使用すれば可能でしょうか?


684 :NAME IS NULL:2009/05/06(水) 14:48:00 ID:???
rshとか。
さもなくば、RPCとか。
そういう話ではないん?

685 :NAME IS NULL:2009/05/06(水) 15:02:00 ID:???
>>683
684も似たような方法を言ってるけど、telnetでもsshでも、お好きな方法でどうぞ。
的外れとか言うなら、前提条件をしっかり書くべし!

686 :NAME IS NULL:2009/05/06(水) 15:21:19 ID:???
>>683
ttp://www.oracle.co.jp/forum/message.jspa?messageID=2020251

687 :NAME IS NULL:2009/05/06(水) 15:42:24 ID:???
dbms_schedulerって基本使ったことないけど、そんなに便利なものなん?
>>686の議論でも、「cronでやれや」って出てこないのが不思議w
他のサーバとの連携とか込み入ってくれば、JP1などを使ったりするだろうし。


688 :NAME IS NULL:2009/05/06(水) 16:46:21 ID:???
>>671
経験無い?何度かあちこち弄ってて、
何がおかしいのかわからなくなってOSからやり直したことあるからな。。

最近はOSからやり直すことは無いが、スナップショットはちょくちょく使う。 

689 :NAME IS NULL:2009/05/06(水) 16:56:44 ID:???
仕事だと、環境設定からすべて記録するから、再インストールはありえない。
自宅だと、かまわないけど原因を究明するのがスキルアップにつながるからできるだけ回避。
EBSやらなにやら複合で入れている場合はパッチでバグになってループする可能性あるからなんともいえないが、
OracleDB単体なら再インストールするひつようはないと思う。

690 :NAME IS NULL:2009/05/06(水) 17:07:17 ID:???
すごいね。いきなり Oracle スレ急上昇。
でも学習はいいだろうけど運用はかなり費用がかかるんでしょ?
最近、こういう費用も厳しいんですよね。
なにせ会社で Vista は一台もなしだし。アップするとイモずる式に M$ 関係にライセンス料更新とか発生してしまって。勘弁して欲しい。
なにせ未だ Access 2000 現役だからなぁ。

691 :NAME IS NULL:2009/05/06(水) 20:50:32 ID:???
>>688
やる前にバックアップを採っておくのは当たり前だから、入れ直すとか全く考えない、ありえない。
特に大型機のUnixなんかだと、OSのインストール(HBAとかストレージなんかのミドルも含めて)は、別のSEがやることが多いし。


692 :NAME IS NULL:2009/05/07(木) 19:41:05 ID:rgwTFvO+
Oracle初心者ですが、質問です。
OracleにはDB2のコントロールセンターのようなデータを手軽に挿入できるツールはあるのでしょうか?
データの追加はSQL Plusで地道に挿入するしかないのでしょうか?
教えてください!

693 :NAME IS NULL:2009/05/07(木) 21:14:27 ID:???
>>692
Access

694 :NAME IS NULL:2009/05/07(木) 21:19:41 ID:???
ある。

695 :NAME IS NULL:2009/05/07(木) 21:29:20 ID:rgwTFvO+
>>694
どのツールを使えば出来るのですか?


696 :NAME IS NULL:2009/05/07(木) 21:45:31 ID:???
>>695
CSE
SQLEDIT

697 :NAME IS NULL:2009/05/07(木) 22:59:05 ID:???
SQL*Loader も覚えれば楽だよ。


698 :NAME IS NULL:2009/05/09(土) 03:01:35 ID:JoxlLn6y
Linux版(64ビット)のオラクルをインストールしたのですが、sqlplusのコマンドを実行すると、
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
が出ます。
プロセスを見るとOracle関連のプロセスが起動してないのですが、Oracleを起動させるには
なにかのコマンドが必要なのでしょうか?


699 :NAME IS NULL:2009/05/09(土) 03:44:33 ID:???
SQL> startup

700 :NAME IS NULL:2009/05/09(土) 09:40:51 ID:JoxlLn6y
dboraというスタートアップスクリプトを書かないと駄目なんでしょうか?


701 :NAME IS NULL:2009/05/09(土) 12:20:35 ID:???
>>698
基礎知識を学んでから出なおしてきてください。

702 :NAME IS NULL:2009/05/09(土) 15:33:21 ID:2Qq3YQMD
オラクルとSQLサーバーの決定的なちがいは何でしょうか

703 :NAME IS NULL:2009/05/09(土) 15:35:49 ID:???
>>702
オラクルは犬で
マイクロソフトはイルカ

704 :NAME IS NULL:2009/05/09(土) 18:26:27 ID:???
>>702
Windows以外のOSをサポートしているか否か

705 :NAME IS NULL:2009/05/09(土) 20:19:07 ID:???
>>700
だめじゃないです。
OSの起動と同時にインスタンスやリスナーを起動したい。
OSの終了と同時にインスタンスを終了したい。
なら用意する必要があります。

実際のところOS自体を落すことってほとんどないでしょ。

706 :NAME IS NULL:2009/05/09(土) 21:21:46 ID:???
>>705
無能は放置せよ。

707 :NAME IS NULL:2009/05/09(土) 21:26:32 ID:???
>>706
お前今から放置されるぞ?大丈夫なのか?

708 :NAME IS NULL:2009/05/09(土) 21:57:37 ID:???
矛盾の意味を知ってるかい?

709 :NAME IS NULL:2009/05/10(日) 00:43:07 ID:???
そんな質問は辞書サイトで解決

710 :NAME IS NULL:2009/05/10(日) 01:05:41 ID:???
つまり、ちょっと調べればわかることを聞くなってことだよな。

711 :NAME IS NULL:2009/05/10(日) 04:20:02 ID:???
>>698
調べるとしたらこの辺かなぁ
ttp://www.shift-the-oracle.com/config/startup-oracle.html
ttp://www.shift-the-oracle.com/oerrs/ora-01034.html
ttp://www.shift-the-oracle.com/oerrs/ora-27101.html

一冊入門本を買ってくることをお勧めするよ。
データーベース、インスタンス、リスナー、sqlplus、EMとは何かとそれぞれの関係をまずつかむこと。

712 :NAME IS NULL:2009/05/11(月) 00:33:33 ID:???
免許持ってないヤツから「試しに車に乗ってみたんですが」
とか質問されるF1ドライバーを見ている感じだな。

713 :NAME IS NULL:2009/05/11(月) 14:51:48 ID:???
Oracleのトリガー内で、
利用アプリケーションにイベント通知は可能なのでしょうか?

アプリケーション側でフラグに該当するテーブルを監視するというやり方でなく、
イベントを通知するというやり方がわかりません。

714 :NAME IS NULL:2009/05/11(月) 23:30:06 ID:???
Advanced Queuing とかは?


715 :NAME IS NULL:2009/05/12(火) 17:49:36 ID:???
Oracle 10gで質問です。

select * from table1
where field1='VALUE'

とするとインデックスを参照しますが

select * from table1
where field1=SYS_CONTEXT('NAMESPACE','PARAMTER')

としたとき、FULLスキャンになります。
この条件をビューの定義に含めたいのですが、
うまくインデックスを使うように書くことはできませんか?

よろしくお願いします。

716 :NAME IS NULL:2009/05/12(火) 19:03:56 ID:???
>>715
カラムの中身とオプティマイザ次第だろ。
どうしても索引使いたければヒントで固定。

717 :NAME IS NULL:2009/05/12(火) 22:22:08 ID:0DEmvHy+
SQLチューニング・アドバイザーの使用例をまとめた資料を作成しているのですが、質問です。
以下の2つのテーブルに対して、なるべく付加の高いSQL文を発行したいです。
どのようSQL文を発行したら良いでしょうか?どなたか教えてください

表A
列a、列b、列c(表Bのa列を参照)、列d

B表
列a、列b


718 :NAME IS NULL:2009/05/12(火) 22:41:39 ID:???
>>717
select * from A,B

719 :NAME IS NULL:2009/05/12(火) 22:55:31 ID:0DEmvHy+
なるべくデータを多く参照すればよいということですかね?

720 :NAME IS NULL:2009/05/13(水) 21:52:27 ID:???
Oracle11gでエンタープライズマネージャーは入ってません。

Database Configration Managerからデータベース作成時に設定した
初期パラメータの メモリー・サイズ(SGAおよびPGA) の値を確認する方法はありますか?

宜しくお願いします。

721 :NAME IS NULL:2009/05/13(水) 21:56:44 ID:???
>>720
お前みたいなヤツはアラート見ろ。
起動時のログに書いてあるから。
あとはちゃんと自分で調べてくれ。

722 :NAME IS NULL:2009/05/13(水) 22:38:25 ID:???
>>721
まじ助かりました、ありがとう!

723 :NAME IS NULL:2009/05/14(木) 12:19:48 ID:???
教えて下さい。

Oracle10g使用

SELECT COUNT(*),
(SELECT COUNT(*) FROM tbl_A),
(SELECT COUNT(*) FROM tbl_B)
FROM ( SELECT * FROM tbl_A
UNION
SELECT * FROM tbl_B ) TMP;

これを実行すると、2行目の「(SELECT COUNT(*) FROM tbl_A),」の「count(*)」でORA-00937: not a single-group group functionが出ます。

SQL Serverだと問題なく通るSQLなのですが、なんでOracleは怒られるんですか?


724 :NAME IS NULL:2009/05/14(木) 12:45:29 ID:???
集計関数の列で指定できる属性に制約あり

以上

725 :723:2009/05/14(木) 13:01:33 ID:???
>>724
回答ありがとうございます。
どこか参考になるURL有りませんか?
ぐぐっても見つけられなくて。。。

726 :NAME IS NULL:2009/05/15(金) 01:54:06 ID:???
ついでにふと思った。
Oracleで、「なーんも考えずに、ぽちっと表を結合する」みたいなほうほうってある?

表A   表B
abc 123
def 456
ghi 789

ほしい結果

表A+B
abc123
def456
ghi789

↑は30分ぐらい考えたけど、Oracleでやる方法が思いつかん。
表の構造変えていいならupdate tab_name set 番号振り用列 = rownumで番号振って

rownumで結合して、select 文で表示させるぐらいしか思いつかん。

727 :NAME IS NULL:2009/05/15(金) 07:39:33 ID:???
>>726
||で結果を結合したり・・
てかもうこの、くだらない一問一答嫌なんだが。
みんなしっかりマニュアル&ネットやらでしっかり調べてから聞いてくれ。

728 :NAME IS NULL:2009/05/15(金) 08:51:52 ID:???
>>727
まともな人はOTNで聞く。

729 :723:2009/05/15(金) 10:23:58 ID:???
>>728
じゃあ、ここの住人は、まともではないってことで

730 :NAME IS NULL:2009/05/15(金) 10:46:42 ID:???
聞いてくる方にアホゥが多すぎるんだよ・・・

731 :NAME IS NULL:2009/05/15(金) 20:56:17 ID:shRi2iqv
会社でT5120+Oracle11gでDBサーバがあるんだけど、自分が使っているデバッグ用PC(MG13D)に入れたよりOracle11gの環境よりおそいんだけどなんでだろう(^^;)

732 :NAME IS NULL:2009/05/15(金) 21:17:36 ID:???
Instant Client のスレってありますか?
使い物になるのか知りたいので。


733 :NAME IS NULL:2009/05/15(金) 21:45:15 ID:???
専用スレはないな。
べつに、ふつうに使えるぞ。

734 :NAME IS NULL:2009/05/15(金) 22:36:14 ID:???
つーか、 rownumで結合なんて、データベースの設計として間違ってるべ?
違う?

と言ってみるテスト

735 :NAME IS NULL:2009/05/16(土) 00:25:22 ID:???
ところが素人さんに任せるととんでもないこと言い出すんだな。
入れた順に〜とか、キー値と大体合致してる〜とか。

736 :NAME IS NULL:2009/05/16(土) 01:23:56 ID:U6sR389j
>>731

MG13Dを使用していて、且つT5120を使っているっていうことは
F社関係者?

T5120 はOracleRDBMSサーバ製品を稼動させるのには向いていない。
WebサーバやWebアプリケーションサーバの様に小さいスレッドが
多数動作する環境向きといわれている。


737 :NAME IS NULL:2009/05/16(土) 01:26:50 ID:???
そんな、なんちゃって君にはRDBを扱う前に基本情報から勉強してこいと送り出してやりなさい。

738 :NAME IS NULL:2009/05/16(土) 10:19:47 ID:55/kVsz3
>>736
普段はLenovo T60とサーバはML115を使ってますけどねw
デバッグはあり合わせのものなんで・・・。

UltraSPARCってDB向けだってインフラ部隊とかDB設計部隊聞いてるけど?
DBでそんなにでっかいスレッド動かないし、要求が多いから複数スレッド動くし・・・。
事実T5440(SEVPHSF1Z)だと爆速なんですけどね。
HP DL580 G5(487363-291)より早いですし・・・。

ってかDBだけど使用目的はWebアプリケーションサーバなんですけどね(^^;)

Solarisよくわからんから今回は自分でサーバみてないんだよね。



739 :NAME IS NULL:2009/05/16(土) 11:02:27 ID:???
>>738
真性の馬鹿だな。
無能DB設計部隊共々勉強しなおしてこい。

740 :NAME IS NULL:2009/05/16(土) 11:29:12 ID:???
Fの技術者は異様にレベル低いからな。しょうがない。

どうせ設定もわからず適当にインストールして遅いだの速いだの言ってるんだろう。


741 :NAME IS NULL:2009/05/16(土) 12:05:12 ID:55/kVsz3
>>739
まぁクライアントやってるから俺はDB勉強しなくていいんだけどねw
もともと、組み込みのC技術者だしw
DB部隊は俺の5倍以上給料もらってるから勉強してもらいたいものだが・・・。
ってか、DBには問題ないとおもうけどね。
CPU使用率はみてるけどそんなにDBで処理くってるわけやないし。
ってかほとんどくってないw

>>740
うちのインフラ部隊はF社並に無能っぽいw
F社に関わりないからよくわからんけど・・・。



742 :NAME IS NULL:2009/05/16(土) 12:35:48 ID:???
>>741
DB設計がちゃんとできてないとIOにばかりコストがかかって
CPUなんかろくろく使われないことを知ってるか?

愚痴こぼす前に、もっと勉強しろ

743 :NAME IS NULL:2009/05/16(土) 12:37:27 ID:???
>>741
>>741
>>741
>>741
>>741
www

744 :NAME IS NULL:2009/05/16(土) 12:39:50 ID:???
まあ、初代Niagaraは1コアの性能が低いからね(UltraSPARCIIレベルと言われてる)。
といっても、AP-DB間のコネクションを増やしてやる(当然、AP側でも考慮してやる必要があるが)とかすれば、トータルの性能を上げることは出来るだろう。


745 :NAME IS NULL:2009/05/16(土) 15:29:05 ID:???
FMV-BIBLO MG13Dって、2003年発売のモバイルノート。
Pentium M 1.30GHz。メモリ最大1GB。
このスペックで、Oracle 11gをインストールして快適なわけが無い。
・・・まあそれは重要じゃないから、いいや。


T5120が遅いのは・・・例えば2GB以上のファイルがあるからかも?
------------------------------------------------------------
Solaris 2.6 から -largefile option を使用することにより
UFS, NFS, CacheFS 上で 2GB 以上の file を扱うことが可能です。
------------------------------------------------------------
というような表記を見かけるが、
Solarisでは2GB未満と、2GB以上とで利用するライブラリが変わるようだ。

ぶっちゃけ2GBを超えた瞬間に、急激に性能が低下することがある。
(性能が低下するのは、RAIDコントローラのドライバのせいだったりする)
幾つかの容量のファイルを、FTPでやり取りして
FILE I/Oの性能を比較してみては。

746 :745:2009/05/16(土) 15:32:11 ID:???
ごめん。FILE I/Oの性能は、cpで見るのが適切だ。

747 :NAME IS NULL:2009/05/21(木) 21:57:24 ID:???
今回もプラチナクラブのDSI抽選漏れしちまったぜ。
あれ、当たった話聞いたことないが、当たったことある人いる?

748 :NAME IS NULL:2009/05/24(日) 22:14:59 ID:???
IndexってViewにも付与できますか?
お客さんとこの環境で今試せないので
分かる方教えて下さい。
Windows 2000 Server
Oracle 8.1.7

749 :NAME IS NULL:2009/05/24(日) 22:35:22 ID:???
ふつうのVIEWにはつけられない
VIEWが参照しているTABLEにはつけられる

MATERIALIZED VIEWならつけられる


750 :NAME IS NULL:2009/05/25(月) 22:17:13 ID:guErIChI
Oracle10gで私の知識レベルを超えた事象が起こったので質問させていただきます。

テーブル中に、VARCHAR2(120)、VARCHAR2(180)のフィールドがそれぞれ存在する状態で(他にもあります)
SQLLDRを用いてCSVファイルを取り込ませています。
 長さ120のフィールドには全角60文字のCSV値をセットし、
 長さ180のフィールドには全角90文字のCSV値をSQLLDRでセットすると
180バイトのフィールドだけが、「フィールドの最大長を超えている」と言われてエラーになります。
これを「全角85文字」まで削ると、何故か正常終了できるようになります。

CSV文字列はどちらも「名前00112345{以後規定文字数まで 12345 を繰り返す}1234*」
としています。(120のフィールドには全角60文字分、180の方は全角90文字分)



また、ググっているうちに文字コードによって全角3バイトの場合があると知ったので、
(今まで全角は必ず2バイトで格納されると思い込んでいました)
http://www.shift-the-oracle.com/config/multibyte-characterset.html
調べてみると、
私の環境の文字コードは、DBキャラセットは    JA16SJIS
            各国語キャラセットは AL16UTF16
となっているようで、全角が3バイトになる理由も無いように思えます。

何故、180バイトのフィールドだけがエラーになるのかの理由と、
回避する方法がお分かりでしたら教えていただけますでしょうか。


751 :NAME IS NULL:2009/05/25(月) 22:30:16 ID:???
本当に90文字なのかな
目に見えない文字が入ってたりして

752 :NAME IS NULL:2009/05/25(月) 22:46:45 ID:???
ためしにカラムを大きめにして入ったデータ見てみたら

753 :NAME IS NULL:2009/05/25(月) 22:57:50 ID:???
>>750
サポートに聞けよ
アホ

754 :NAME IS NULL:2009/05/25(月) 22:57:52 ID:???
>>749
テーブルにつけてたら有効なんですね
サンクス

755 :NAME IS NULL:2009/05/26(火) 08:09:06 ID:???
>>750

SQL*Loader-350エラーは必ずしもフィールド長に起因するものではない。
どちらかというとORA-600に近いものと理解した方がいい。
ロードするデータやコントロールファイルにエラーがあると、SQL*Loader-350
エラーとしてハンドリングされてしまう事がある。
よって、データ及びコントロールファイルをもう一度良くチェックすべし。

756 :NAME IS NULL:2009/05/26(火) 18:22:33 ID:???
>>755
文字を削っていったら成功したっていう事象を無視した発言じゃね?

757 :NAME IS NULL:2009/05/26(火) 21:36:35 ID:???
>>756

たとえばデータの最後にクオーテーションやダブルコーテンションがなければ
ならないのに、それが抜けていたらSQL*Loader-350が返ってきたりする。
文字列を削っていけば、その抜けていたデータがロードされなくて通ったりとかも
考えられるだろ?

758 :750:2009/05/26(火) 22:32:00 ID:???
>>751-757 の皆様
色々とご回答ありがとうございます。
私は別件が忙しくなって、本日は本件を全く見れていなかったのですが、
皆様のお話から判断すると、
 ・全角が3バイト以上となることは、今回のケースでは考えられない
 ・他の問題(>>755 のデータおよびコントロールファイル)を疑うべし
ということのようですね。

最初はある特定のケースで文字のバイト数が増えるのか? と混乱していたのですが、

皆様の回答からそれは無い、ということが自信が持てたので、あとは違った角度から問題解決の糸口を探っていこうと思います。
どうもありがとうございました。


759 :NAME IS NULL:2009/05/28(木) 21:19:16 ID:???
DBはoracle8iです

SYSTEMスキーマにてスキーマAのテーブルBをマスタにしているスナップショットが調べたいのですが
dba_registered_snapshotsのownerはスナップショットの持ち主を指すんでうまく検索できません・・・

ようはマスター側のテーブルのownerとtable_nameでレプリ先のスナップショットを検索できるSQLが書きたいです

教えてくれれば幸いです



760 :NAME IS NULL:2009/05/28(木) 23:25:59 ID:5nEvd4/b
初心者で質問なのですが、
スーパー管理者、リポジトリ管理者というのは、具体的に何が出来るユーザー(管理者)なのでしょうか?

どなたか教えてください?


761 :NAME IS NULL:2009/05/28(木) 23:39:29 ID:???
Oracle8iでViewを作成する際、フィールドの型を変更することってできます?

元Table → View
NUMBER(10,3) → VARCHAR(15)
DATE → VARCHAR(10)



762 :NAME IS NULL:2009/05/28(木) 23:39:36 ID:???
スーパーなことができる管理者
リポジトリなことができる管理者


763 :NAME IS NULL:2009/05/29(金) 02:55:04 ID:???
>>760

エスパーではないが、多分OEM(10g Grid Control)の事言っているのかいな?
Super Administrator権限は文字通りOEMコンソール上において最上級の権限を持つ。
OEM用に他ユーザーを作ったり、新規のRuleを作成したり何でもできる。

Repository AdministratorはSYSMANの事を指すと思われ。
SYSMANもSuper Adminsitartor権限を持っているが、DB上においてリポジトリに関連する
DBオブジェクトは全てこのユーザーの配下に作成されている。
OEMに関連するパッチやアップグレードを行う場合、SYSMANのパスワード入力を求め
られるのはこのため。

764 :NAME IS NULL:2009/05/29(金) 16:28:43 ID:???
シーケンスを使って1ずつ増えるプライマリキーを持つテーブルがあるのですが、
このテーブルからプライマリキーが最大の行を取得するにはどう書けばいいですか?(1文で)

765 :NAME IS NULL:2009/05/29(金) 17:49:13 ID:???
currvalとかrownumとか副問い合わせとか

766 :NAME IS NULL:2009/05/30(土) 03:14:54 ID:OxBqVtla
全てフリーでWindowsXPにOracle+ODBCをインストールしたいと思っています。
とりあえず「OracleXEUniv.exe」ってのを落としてきてインストールしました。
次にODBCですが、どうやらOracle Universal Installerなるものが必要なのですが、
これはフリーで手に入るのでしょうか?可能なら入手方法を教えてください。

767 :NAME IS NULL:2009/05/30(土) 08:57:40 ID:???
ODBCドライバなら、はじめからWindowsに入ってるよ。
Oracle純正もあるけど。

768 :NAME IS NULL:2009/05/31(日) 19:11:41 ID:6AEhynkf
create database 時に tempfile のデータファイルを複数指定するには
どのように記述すればいいでしょうか?
1つの表領域に対して複数のデータファイルを指定したいのですが・・・

WindowsServer2003のOracle11gです。


769 :NAME IS NULL:2009/05/31(日) 19:56:11 ID:???
作ってから追加すれば。

770 :NAME IS NULL:2009/05/31(日) 23:09:16 ID:8PhEh/zy
SYS SYSMAN SYSTEM DBSNMP の各ユーザーの読み方って何て読むんですか?
SYSは、シスユーザーとかですか?

771 :NAME IS NULL:2009/06/01(月) 08:14:20 ID:???
>>770
自分考えろや。
ホント、大ゆとり時代だな。

772 :NAME IS NULL:2009/06/01(月) 20:34:39 ID:tfA2VkzE
俺は、
SYS⇒シス、SYSMAN⇒シスマン、SYSTEM⇒システム、DBSNMP⇒ディービーエスエヌエムピー
って読んでるが、他にも同じ人いる?

773 :NAME IS NULL:2009/06/01(月) 20:48:37 ID:???
まぁ同じだな

774 :NAME IS NULL:2009/06/01(月) 21:27:30 ID:???
SYSDBA  シスデービーエー
SYSOPER  シスオパー
Ping   ピング
GUEST   グエスト
nobody  ノウボディ


775 :NAME IS NULL:2009/06/01(月) 21:58:19 ID:???
ごめん、つっこませい
Nobody は ボぢゃなくて ノォーブァディ ってマジは現金か

776 :NAME IS NULL:2009/06/01(月) 22:03:52 ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ     >>774
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /

777 :NAME IS NULL:2009/06/01(月) 22:26:25 ID:???
ドラゴンケスト

778 :NAME IS NULL:2009/06/01(月) 23:57:25 ID:???
>>767
教えてくださってありがとうございます。
やっと規制解除された。。

779 :NAME IS NULL:2009/06/02(火) 05:28:36 ID:???
>>770

http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B9

780 :NAME IS NULL:2009/06/02(火) 22:04:34 ID:VnED08o2
学生で周りに聞ける方が居ないので教えて頂たいのですが、
Database Controlの「パフォーマンス」タブの「平均アクティブ・セッション」
における(時系列に表示されている)グラフが意図するものは何なのですか?
セッションの内訳を表示しているというのは何となく分かるのですが。
縦軸の意味もよく分かりませ。(横軸は分かりますが...)

分かりにくい質問ですみません。
友達に色々質問されて、上手く説明できなく困ってます。


781 :NAME IS NULL:2009/06/02(火) 23:18:38 ID:HF9ihThy
SQL*PLUSからは実行できるSQL文がJDBC経由で実行すると
内部エラーが発生します。


長いSQL文が原因かどうかわかりませんが
SQL文を短くすると内部エラーがでません。

なにかアドバイスが頂きたいです。

ODBC経由では実行できてJDBC経由では実行できない
経験があるかたいらっしゃいましたら教えてください。

以上です。

782 :NAME IS NULL:2009/06/03(水) 00:38:06 ID:???
>>780
マニュアル嫁
DatabaseControlならその場でHelpも開けるから、それ見ろ。

>>781
JDBCだと上手くいかないとか、ADO.NETだと上手くいかないとか、
そういうのは経験したことある。
バインド変数の暗黙変換周りとかがクサイ。

783 :NAME IS NULL:2009/06/05(金) 07:37:05 ID:???
内部エラー、というだけで、結構ヘコむよな。
とりあえず、最新のパッチセットリリースを適用して再現するか確認。



784 :NAME IS NULL:2009/06/05(金) 16:01:32 ID:???
Oracle Textに関して質問です。

TableA
 KEY NUMBER(10,0) PRIMARY KEY,
 DATA1 VARCHAR2(20),
 ...

TableB
 KEY NUMBER(10,0) PRIMARY KEY,
 A_KEY NUMBER(10,0),
 TEXT VARCHAR2(2000)

このようなテーブルがあり、TableBのTEXTに対して全文検索用のINDEXを作成しています。
 create index idx on TableB(TEXT)
 indextype is ctxsys.context
 parameters('lexer JAPANESE_LEXER')

そして以下のような文を実行した時で、'hoge'を含むレコードが100万件など多量にあった場合に、
応答まで数秒掛かってしまいます。
 select TableA.*
 from TableA, TableB
 where TableA.KEY = TableB.A_KEY and contains(TableB.TEXT, 'hoge')>0

TableBのみで同様の全文検索を行った場合は即時応答があるため、
テーブル結合に時間が掛かっていると思うのですが、これを高速化する方法は無いでしょうか?

TableAにダミーフィールドを作成してそこに全文検索用のINDEXを作成する方法や、
マテビューを使用するなどの、結合自体を行わない方法以外が望ましいです

Oracle10gを使用しています。宜しくお願いします。


785 :NAME IS NULL:2009/06/06(土) 06:18:03 ID:???
俺だったら第2案、第3案として次を試します。
Oracle7育ちなので実行計画を比較して選びます。
でも、10gだと結局全部が同じ実行計画になるかも。

2案:
select * from TableA where KEY IN
( SELECT A_KEY FROM TableB where contains(TableB.TEXT, 'hoge')>0 );

3案:
select TableA.* from TableA,
( SELECT A_KEY FROM TableB where contains(TableB.TEXT, 'hoge')>0 ) TableB
where TableA.KEY = TableB.A_KEY;

あとは処理を2ステップにして、1ステップ目で5000件以上のときは
ユーザに通知して2ステップ目(目的の処理)に進まないとか・・・

786 :784:2009/06/08(月) 12:05:16 ID:???
>>785
どちらも試してみましたが、やはり遅いままでした。

別の手法も視野にいれつつ再検討したいと思います。
ありがとうございました。

787 :NAME IS NULL:2009/06/09(火) 00:28:59 ID:???
>>785

ナカーマ(゚∀゚)人(゚∀゚)
オイラもOracle 7育ちだよ。
とは言ってもデータベース管理T受けさせられただけで、スナップショット
使いまくりの分散DBが最初の担当だったけどさ・・・('A`)
叩き上げで、そのあと欧州に渡り、今はアメリカ東部戦線で戦っているw

788 :NAME IS NULL:2009/06/12(金) 01:19:42 ID:???
ORACLE XEについて質問です。
WINDOWS&C言語&XE(&PRO*C)のフリーセットでアプリケーションを
作って勉強したいと思っています。CとXEはそれぞれ無事動作したの
ですが、PRO*Cが見つからず連携できません。何か良い方法もしくは
参考になりそうなURLご存知の方はいらっしゃいますでしょうか?
ググッてもみたのですが参考になる情報は見つけられませんでした。
どうぞ宜しくお願い致します。。。

789 :NAME IS NULL:2009/06/12(金) 07:46:54 ID:???
Pro*Cは、既に廃れつつあるテクノロジだと思っていますけど、
スレ住民の見解は、どうなんですかね。

私自身は、ストアドプログラムを書くのに際し、
PL/SQLで機能不足を感じた事は無いです。

790 :NAME IS NULL:2009/06/12(金) 10:53:39 ID:???
Pro*CもPL/SQLももう使わんな。

791 :NAME IS NULL:2009/06/12(金) 14:16:21 ID:???
だが、まだ使われているんだよな。
頑なに、Solaris+Oracleを使い続けているような所は、特に。

792 :NAME IS NULL:2009/06/12(金) 14:25:06 ID:???
>788
いやいや流石に Pro*C/C++ まではタダ配りしてないってw

>>789
C (C++ でなく) で開発するなら他に選択の余地もないでしょ。
C++ や C++/CLI ならまだしも。

793 :NAME IS NULL:2009/06/12(金) 14:53:06 ID:???
>>791
頑なって、他に選択の余地もないでしょ。

794 :NAME IS NULL:2009/06/12(金) 18:53:46 ID:???
Oracle XEにはPro*C入ってないよ
これ豆知識

795 :NAME IS NULL:2009/06/12(金) 23:40:23 ID:???
今から覚えるんなら素直にociにすれば?
Pro*Cみたいなプリプロセッサはハマったときのデバッグが大変だし。

796 :NAME IS NULL:2009/06/13(土) 08:32:24 ID:???
はげど。
あんなオナニー技術

797 :NAME IS NULL:2009/06/13(土) 10:00:28 ID:???
皆様情報ありがとうございます。
PL/SQLなら色々サンプルもありそうですね。
できればPro*Cで作りたかったのですが、
>>794さんのおっしゃるとおりでした。
確かにあまり選択の余地はなさそうです。
ociも調べてみました。これもオラクルなの
ですね。XE中にもDLLとかありましたので何
とかなりそう?ありがとうございます。>>795さん
PL/SQL、ociあたりから攻めてみます。
情報提供していただいた皆様本当にありがとう
ございます。

798 :NAME IS NULL:2009/06/13(土) 10:18:27 ID:???
若干制約があるけど、ODBCの方が他のDBにも応用できるし、
VBやVBA、VBSなどでも同じ使い方が出来るし、最初にやるのはこっちの方がいいんじゃね?


799 :NAME IS NULL:2009/06/13(土) 12:46:07 ID:???
>>798
クソ遅いからイヤダ

800 :NAME IS NULL:2009/06/13(土) 18:13:38 ID:???
じゃあ、JDBCやOLEもダメかw

801 :NAME IS NULL:2009/06/17(水) 17:32:09 ID:???
Oracle 10gを利用したアプリケーションの分析をしています。

仕様書が無いため、非常にわかりにくいアプリケーションなのですが、
基本的にDBアクセスのアプリケーションです。

分析するためにアプリケーションが発行したSQLの履歴を確認したいのですが、
確認方法はあるのでしょうか?

なにか、ヒントになるようなサイトや言葉があれば教えて頂きたいです。

802 :NAME IS NULL:2009/06/17(水) 18:34:55 ID:???
audit を仕掛けるとか。



803 :NAME IS NULL:2009/06/17(水) 18:49:06 ID:???
>>801
v$sqlとかv$sqlareaを定期的に採取したら?
EnterpriseManagerでも負荷の高いSQLは採取できたと思うけど。

804 :NAME IS NULL:2009/06/17(水) 23:41:59 ID:???
>>803

この場合は負荷の高いものを知りたいのではないでしょ。


805 :NAME IS NULL:2009/06/18(木) 01:24:16 ID:???
>>801

ファイングレイン監査。

806 :NAME IS NULL:2009/06/19(金) 07:04:58 ID:???
ファイングレイン監査(FGA監査)は、
Enterprise Editionだけの対応らしい。

11gのTotal Recallも、
Enterprise Editionだけの対応らしい。
面白くねえ。

807 :NAME IS NULL:2009/06/19(金) 07:05:23 ID:2pJAXRqp
>>801

以下のURLの「別セッションのSQLトレース、EVENT 10046の
SQLトレース取得手順」を参考

ttp://www.atmarkit.co.jp/fdb/rensai/orasql05/orasql05_2.html


808 :NAME IS NULL:2009/06/19(金) 10:22:05 ID:Rgb/cdY+
すいません。手も足も出ないので質問させてください。
Oracle8iでDBを別に建てようとしたところ
ORA-01034: ORACLE not available
のエラーでデータベースが作成できません。

状況は
OS:windows2000server
Oracleは、8.1.5 で
Cドライブはシステムのみ。
DドライブにOracle本体。
Eドライブには、別システムのOracleDBが作成されています。
新たに、FドライブにDBを作成しようと「Databese Configuration Assistant」で
初期化ファイル、制御ファイル等作成時表示されるドライブを全てFドライブ指定に変えて
作成しようとしたところ
ORA-01034: ORACLE not available
がログに出力され、作成できません。

一からの作り直しをしたり、色々試したのですが、正直解りませんでした…
Oracle本体からの再インストールをすれば良いのかもしれませんが
別システムが既に稼動している為、それもできません。
正直、この状況は初めてで、困り果てています。

なにか、ヒントでも良いのでアドバイスをください。よろしくお願いします。



809 :NAME IS NULL:2009/06/19(金) 12:41:28 ID:???
ORACLE_SID じゃないのかな。

810 :NAME IS NULL:2009/06/19(金) 13:21:01 ID:Rgb/cdY+
>>809
一応、DB名は6文字。SIDは4文字で作成しています。
listener.ora,tnsname.ora,sqlnet.oraはバックアップを取ってあり、
やり直す場合
・Database Configration Asistantでインスタンスを削除する。
・D,F各ドライブの\oracle\oradata\対象ディレクトリの削除する。
・D:\oracle\network\admin下のlistener.ora,tnsname.ora,sqlnet.oraをバックアップから復元する。
を行なっています。

後、Oracle8iのバージョンは8.1.7でした…


811 :NAME IS NULL:2009/06/19(金) 18:49:24 ID:???
>>808
リモートデスクトップ接続で作業してる?

8.1.7は、リモートデスクトップ接続
(ターミナルサービスクライアント利用など)
では、CREATE DATABASEできないよ。
Database Configuration Assistantを使ってもダメ。
不具合だけど直さない、とかいう話だったかな。

サーバのある場所まで行って、
サーバに直接ログオン(ローカルログオン)して
作業すると大丈夫。

そこまで行けない場合、ウラワザとしては、
Database Configuration Assistantなどで
スクリプトを作っておき、そのスクリプトを、
ATコマンドで、Windowsからログオフしている時間帯に
呼び出すように仕込めば作れたような気がする。

812 :NAME IS NULL:2009/06/19(金) 23:11:17 ID:???
RDTのコンソールセッションならいける。

813 :808:2009/06/20(土) 01:11:57 ID:???
色々アドバイスありがとうございました。
原因が判明しました…
よりによって、使用する予定のポート番号が重複していたことが
原因でした…
1523ポート使用と言っていたのに、別システムが先に無断で使用していました。
未使用の1522ポート指定でうまく作成されました。

お騒がせして申し訳ありません。

…PGのポート指定直さなきゃ…orz

814 :NAME IS NULL:2009/06/22(月) 21:48:38 ID:???
質問失礼します。
携帯で失礼。

環境
DBサーバ win2003R
NAS win strage server2003
oracle10g

DBサーバからdbConsoleでNASにダンプを落としたいのですが、
書き込み権限のエラーが出ます。

DBサーバからNASへのwin上でのファイル作成・書き込みは出来ています。

後、ORACLEのホスト権限(?)にはアドミンのIDとPWを設定し、
ディレクトリに落としたいNASのフォルダを設定しています。


他に必要な設定はなんでしょうか?
ORACLEではなくwin側でしょうか?
足りない情報ございましたら逐一書き込みます。
よろしくお願いします。

815 :NAME IS NULL:2009/06/22(月) 23:09:29 ID:???
ネットワークドライブをマウントすりゃいいんじゃね?

816 :NAME IS NULL:2009/06/23(火) 00:07:40 ID:???
>>814
OracleじゃなくWinの制限。
http://support.microsoft.com/kb/124184
簡単に言うと、サービスの開始アカウントを変更(要Admin権限)し、そのアカウントで
NASにアクセスできるようにしないと駄目。

817 :NAME IS NULL:2009/06/23(火) 13:03:19 ID:???
っていうか、Windows版Oracleの問題でもあるだろ、これ。
サービスをシステムアカウントで作ってしまうようになっているのが、おかしい。


818 :NAME IS NULL:2009/06/23(火) 23:18:00 ID:???
俺が無知なんだろうけど、
dbConsoleでダンプを落とす、って何?

ダンプと言うとexpか、expdpの事しか
思いつかないんだよね。
Enterprise Manager(EM)をよく知らないから
駄目なんだろうかね?

819 :NAME IS NULL:2009/06/25(木) 00:02:14 ID:???
単純にOEM(DBconsole)を使ってDataPump使うってだけだと読み取った。
ASMとかリソースマネージャとか使うと、OEMがないと不便を感じる。

820 :NAME IS NULL:2009/06/25(木) 02:31:26 ID:???
>>814

データパンプ用のディレクトリをDB上に作る時にUNCで指定していないからじゃね?

821 :814:2009/06/25(木) 15:09:47 ID:???
遅レス済みません。
ご解答頂いた皆様、有難うございます。

結果だけ言うと分かりませんでした・・
私が派遣一辺倒で、プログラム一本環境無知なもので。。。

winのタスクでPLを起動し、ファイル転送のバッチを動かす事で解決致しました。


822 :NAME IS NULL:2009/06/29(月) 15:10:44 ID:OhsehFKL
例えば、9→10g へバージョンアップ
移行のヒヤリングを教えて

何を聞けばいいのかすらわかんない

823 :NAME IS NULL:2009/06/29(月) 23:24:56 ID:???
・O/S
・DBのバージョン
・テスト環境の構築
・テスト環境におけるアプリケーションのテスト期間
・アップグレードにおけるアプリケーションへの影響
・アップグレードによるSQLのパフォーマンス問題の対応方法
・バックアップ手順
・移行に際して、DB止められる時間
・移行手順の確認 (DBUA? マニュアルアップグレード?)
・移行失敗におけるリスク
・移行失敗時におけるバックアッププラン

824 :NAME IS NULL:2009/06/30(火) 22:23:35 ID:???
>>822

(´д`)つhttp://hp.oracle.co.jp/
アップグレードに関するドキュメントも幾つかある。

825 :NAME IS NULL:2009/07/01(水) 00:56:16 ID:???
教えてください。

OSもDBのバージョンも一緒のホストAからホストBにデータを移したいと考えています。
ホストAで
exp system/password full=y
でエクスポートしたデータをホストBに移す場合
ホストB側ではどんな器を作っておけばよいのでしょうか。

同名DBを作成する。

同じユーザーを作成する? ←このへん
表領域ファイルを作成する? ←このへん
〜をする? ←このへん



imp system/password full=y

を実行する。

826 :NAME IS NULL:2009/07/01(水) 02:33:42 ID:???
>>825
バージョンが同じ場合は、物理的に移行する(データファイルその他のコピー)方が簡単。

827 :825:2009/07/01(水) 07:44:55 ID:???
>>826
ありがとうございまず。
exp/inpでの移行方も会得しておきたいと思っていますのでexp/impでの方法をご教授頂けたらありがたいです。
よろしくお願いいたします。


828 :NAME IS NULL:2009/07/01(水) 07:49:44 ID:???
>>827

まずは日本語から勉強し直すといいよ。


829 :NAME IS NULL:2009/07/01(水) 09:26:42 ID:???
>>828
マジで >>827 が読めないつってんの?どう読んでも
「他の遣り方なんざ訊いてねえよ。」
の婉曲な表現だろうに。

>>825
やってみりゃすぐ解るレベルなのに…

830 :NAME IS NULL:2009/07/01(水) 15:45:15 ID:???
impの時にfull=yなんて、俺はあまり使わないな。

1)DBを作成
2)表領域を作成
3)ユーザーを作成。権限を付与
4)imp system/password fromuser=hoge touser=hoge
5)3と4をユーザの数だけ繰り返す。やり直したいならdrop user hoge cascade
6)utlrp.sqlなどでinvalidなオブジェクトをコンパイルする
7)select owner, object_type, count(*) from dba_objects group by owner, object_typeなどでAとBを比較。

上記の手順をマスターしておくべき。

impでfull=yをどうしてもやりたいなら、
(個々のユーザーのパスワードが分からん、とか)
タイミングとしては2の前か、3の前だな。

3の前だと、impでfull=yでは2の処理を含むから、
表領域の作成が重複してしまいエラーが出るけど、
それは想定の範囲ってやつで問題なし。

831 :828:2009/07/01(水) 22:13:16 ID:???
>>829

「移行方」って何?
お前の母国だろうと思われる韓国では通じるかもしれないが、ここは日本だからな。

ちなみに exp/imp はもう古い。expdp/impdp を使え。


832 :825:2009/07/02(木) 08:36:08 ID:???
>>830
ありがとうございました。
試してみます。

833 :NAME IS NULL:2009/07/02(木) 10:19:01 ID:???
>>831
園児かお前はw

834 :NAME IS NULL:2009/07/02(木) 19:18:31 ID:???
>>831
expdp/impdpのバグの多さ、ヒドくない?
シロートは、自ら進んで地雷踏め
っていうスパルタ教育主義?

835 :NAME IS NULL:2009/07/02(木) 23:44:54 ID:???
>>834

普通に使っているけどね。
やっぱ早いし。

836 :NAME IS NULL:2009/07/03(金) 00:00:41 ID:???
>>833

園児?

やはりあちらの国の言うことはさっぱりわからんな。

837 :825:2009/07/03(金) 09:02:49 ID:???
>>836
哀れだな。お前。

838 :NAME IS NULL:2009/07/03(金) 09:26:28 ID:???
マニュアルを読めばわかるようなそんな基礎的なことも理解できないほうが哀れだが。


839 :NAME IS NULL:2009/07/03(金) 12:03:22 ID:???
>>837
もう放っといてあげようよw

840 :NAME IS NULL:2009/07/03(金) 21:09:26 ID:???
どっちもどっちだなw

841 :NAME IS NULL:2009/07/03(金) 22:20:51 ID:???
そうね、Oracleなんて必要ない

だってわたしたち、

842 :NAME IS NULL:2009/07/03(金) 23:47:43 ID:???
おもちゃ屋なんだもん

843 :NAME IS NULL:2009/07/04(土) 09:00:26 ID:???
>>842
おもちゃは結構アイテム数あるぞ いまいちだったな

844 :NAME IS NULL:2009/07/04(土) 09:26:17 ID:???
> exp/inpでの移行方も会得

ぷっ(笑)


845 :NAME IS NULL:2009/07/05(日) 00:16:13 ID:Ae/ZxFeb
困り果ててます。。。

現象:[Oracle Database 10g Express Edition]というツールで作成したテーブルをみれない(ORA-00942)

詳細:
上記フリーバージョンにはWebページから表を作ったりする機能があるのですが、
これで作成したテーブルをみることができません。

1.「conn testadmin/testadmin;」でtestadminユーザで接続
2.「select owner,table_name from all_tables where table_name='TblFoo';」でオーナーをみる

OWNER   │  TABLE_NAME
─────┼──────
testadmin │  TblFoo

3.オーナーなのでselectしてみる。「select * from TblFoo;」

ORA-00942:表またはビューが存在しません。

?????????????
?   なぜでしょうか     ?
?????????????

すみませんが、どなたか、本当にすみませんが教えてください。。お願いします。。

846 :NAME IS NULL:2009/07/05(日) 02:07:42 ID:???
>>845
select table_name from user_tables;
にTblFooはありますか?

select * from testadmin.TblFoo;
では結果が変わりますか?

847 :NAME IS NULL:2009/07/05(日) 02:39:40 ID:???
>>845
""をつけると大文字小文字が区別される。つけないと全部大文字とみなされる。
書いてあるSQL・結果がそのとおりなら
(多分、testadminはTESTADMINだと思うが)、
create table "TblFoo" ... として作っている。
その場合、select * from "TblFoo"; としないといけない。


848 :NAME IS NULL:2009/07/05(日) 06:46:00 ID:???
すげ。>>847は、ものすごくスキルある人だね。

849 :NAME IS NULL:2009/07/05(日) 10:36:40 ID:???
>>846さん>>847さん、ご回答ありがとうございます。

>>847さんのおっしゃるとおりでした!
ダブルクォーテーションつけたら選択できました!
どうもありがとうございます。すごいです。本当に感動しました。

850 :NAME IS NULL:2009/07/05(日) 12:40:13 ID:???
ダブルクォーテーションで大小文字の区別をするようになったには
いつのバージョンからだったのでしょう。うむむ覚えていない。

851 :NAME IS NULL:2009/07/05(日) 14:37:52 ID:???
>>850
少なくとも7のときには""で大文字小文字を区別していた。
あと、""でくくると使用できる記号が増え、
空白や+-/*()等も使用できるようになる。

詳しくは「SQL言語リファレンス」の
「スキーマ・オブジェクトのネーミング規則」を参照。

852 :NAME IS NULL:2009/07/05(日) 15:01:26 ID:???
桐スレが炎上している件

853 :NAME IS NULL:2009/07/07(火) 06:40:35 ID:???
ORACLEと桐が無関係な件

854 :NAME IS NULL:2009/07/07(火) 09:19:47 ID:???
Oracle8.1.5がインストールしてあるマシンに別のマシンから接続するにはOracle Clientのいくつのバージョンを入れればいいのでしょうか?
Instant Clientが対応していれば良いのですが、対応表では8.1.7としか書いていないため迷っています。

855 :NAME IS NULL:2009/07/07(火) 13:09:08 ID:???
今時8iなんてサポート外なんだから、9i clientでもなんでも入れておけばいいんじゃない?


856 :NAME IS NULL:2009/07/07(火) 13:20:30 ID:???
>>855
別のバージョンのClientでは動作するか心配だったのですが、動くのでしょうか?
また、公式サイトを見てみたのですがバージョンが10からしか置いてありませんでした。

857 :NAME IS NULL:2009/07/07(火) 14:21:13 ID:???
>>856
そんなに心配なら8.1.5のクライアント入れれば?
大抵前後2世代分くらいなら接続出来るよ。
まぁいずれにしてもサポート対象外だから、
何か不具合あっても泣かないでね。

858 :NAME IS NULL:2009/07/07(火) 14:45:14 ID:???
>>857
了解です。
8.1.5のインストールディスクを紛失してしまっている状態のため、公式からダウンロードができる10.1.0.4をインストールしてみます。
レスありがとうございました。

859 :NAME IS NULL:2009/07/07(火) 16:42:15 ID:???
>>858
あとでもいいから 10g の開発ライセンス買うようにな。

860 :NAME IS NULL:2009/07/07(火) 19:37:42 ID:???
>>858
ライセンスなしは茨の道だぜ。
あとクライアントの対照表がどっかにあったと思うがちゃんと調べて使ったほうが吉だぞ。

861 :NAME IS NULL:2009/07/07(火) 20:08:12 ID:???
>>858
下記参照されたし。
ttp://selolo.blog5.fc2.com/blog-entry-14.html

後、ライセンス関連で微妙な話題だけど、
Oracle-XEのクライアントってあるじゃん?
あれって10gR2クライアント相当で使えないかな?

862 :NAME IS NULL:2009/07/07(火) 20:37:50 ID:???
しかし8.1.5ってのは古いね。

8.1.5は回避不能な不具合多数のため、
8.1.6か8.1.7に更新しましょう、というか
8.1.7にしてください、ぜひおながいします。

というORACLE社のアナウンスがあった記憶がある。
7〜8年前(2001年〜2002年ぐらい)。

863 :NAME IS NULL:2009/07/07(火) 23:22:20 ID:???
oracleがどれだけメモリ使っているか知る方法を教えてください。

特に高負荷でもないに、メモリがなくなります(memfreeがすくない)。
topでみてもorcale以外メモリを沢山使っているプロセスはないんですが。

864 :NAME IS NULL:2009/07/08(水) 00:04:59 ID:???
何を言ってるのかよくわからんが
もしLinuxならmemfreeが少ないのは普通。

865 :NAME IS NULL:2009/07/08(水) 00:14:58 ID:???
vmstat のfreeです。 swapout(so)も発生してますので、間違いなくメモリ不足になっていると思います。

866 :NAME IS NULL:2009/07/08(水) 00:20:38 ID:???
メモリ買え

867 :NAME IS NULL:2009/07/08(水) 00:26:52 ID:???
freeだけじゃなくてcacheも見てるか。

868 :NAME IS NULL:2009/07/08(水) 01:02:46 ID:???
cacheはほとんど変わってないど、そのかわりbuffは激減。

869 :NAME IS NULL:2009/07/08(水) 01:09:11 ID:???
>>865
Linuxは、メモリに余裕がある場合でも、
使われていないページをswapに追い出して
キャッシュ用のスペースを作ろうとするので、
少量のsoは常に発生しうる。

つーかtop見たなら、RSSやったかRESやったか言うのが
使用メモリ量だから、それ見れ。

870 :NAME IS NULL:2009/07/08(水) 03:26:01 ID:???
>>858

10gクライアントはデフォルトでは8iには繋がらないようになっていたはず。
パッチ充てればいいけど。
面倒だから9iクライアント入れておけ。

871 :NAME IS NULL:2009/07/08(水) 03:32:26 ID:???
>>863

Oracleのバージョン何よ?

自動メモリ管理が使われているのなら、10g以降ならSGA_TARGETとPGA_AGGREGATION_TARGETを
足した値がMaxだろうし、11gならMEMORY_TARGETの値がそれになる。

いずれにせよO/Sによってメモリの管理は違う。
Linux、AIX => shared magicだからメモリが空いていたらファイルキャッシュとかにありったけ割り当てようとする。
HP-UX => Ondemand magicだから、プロセスが必要とした時にメモリを割り当てる。ただしO/Sコールによる。

Solarisはほとんど触ったことないが、確かOndemand magicだったけか?

872 :NAME IS NULL:2009/07/08(水) 09:43:28 ID:???
>>859
了解です。恐らく、データベース自体も古くなってきているので一度買い換えると思います。
>>860 >>861
そちらの対応表は一度自分で見つけていたのですが、OracleClientの項目がなかったので無視していました。
しかし、今見てみると一緒にインストールをしたSQLPlusのバージョンなども書いてあったのでこれを使用して確認をしてみます。
>>870
こちらのページ
ttp://futuremix.org/2004/12/oracle-instant-client-linux
を見てInstantClientの10.1.0.3-1を使用して8.1.7のデータベースに接続していたので、10でも大丈夫だろうと思っていました。
870がいうパッチとは8.1.5→8.1.7のパッチのことを指すのでしょうか?

873 :872:2009/07/08(水) 09:44:20 ID:???
最後の行は870さんがいうパッチとは、の間違いでした。 ごめんなさい。

874 :NAME IS NULL:2009/07/08(水) 12:19:45 ID:???
>>872
あとでDB買うからとかじゃなくて、クライアントインストールした時点でそのライセンスは購入な。

875 :NAME IS NULL:2009/07/08(水) 21:52:18 ID:???
>>854=856=858=872
Server Version 8.1.5に対するClientは、8.1.7〜7.3.4
Server Version 8.1.7に対するClientは、10.2.0〜7.3.4

8.1.7は、さすが優秀ですね。
もうサポートされないから全部過去形ですけど。

実は8.1.5 Clientの代替としては、8.0.6あたりが
悪くないのでは。持っていれば、ですが。
あと8.1.5→8.1.7はパッチじゃなくて、10.1.0と10.2.0の関係に近いです。
870が言っているのは、おそらく、あなたには無関係。

876 :NAME IS NULL:2009/07/14(火) 06:06:45 ID:CXaxA+Js
細かい話ですが質問させてください。
旧サーバのOracle 9i から新サーバのOracle 10g にDBリンクを張って、
9i上のテーブル更新を10gに反映させようとしています。
マニュアルには「DBリンクを共有することによって、異なるセッション間でも
セットワーク接続が共有される」とあるのですが、
共有されるネットワーク接続とは具体的に何を指しているのでしょうか?

共有リンクにするメリット・デメリットはそれ以外にもあるのでしょうか?

877 :NAME IS NULL:2009/07/14(火) 08:02:12 ID:???
>>876
ttp://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19224-02/ds_concepts.htm

共有リンクは、通常のデータベース・リンクと次の点で異なります。
・データベース・リンクを介して同じスキーマ・オブジェクトにアクセスする
異なるユーザーの間で、ネットワーク接続を共有できます。

・ユーザーが特定のサーバー・プロセスからリモート・サーバーに接続を
確立するときに、そのプロセスからリモート・サーバーに対してすでに
確立されている接続を再利用できます。
接続を再利用するには、その接続が同じサーバー・プロセスから
同じデータベース・リンクを使用して確立されている必要があります。
セッションは異なっていてもかまいません。
非共有のデータベース・リンクでは、複数のセッション間で接続が
共有されることはありません。

・共有サーバー構成で共有データベース・リンクを使用すると、
ネットワーク接続はローカル・サーバーの共有サーバー・プロセスの
外部で直接に確立されます。ローカル共有サーバーでの非共有の
データベース・リンクでは、この接続はローカル・ディスパッチャを
介して確立されるため、ローカル・ディスパッチャのための
コンテキスト・スイッチングが発生し、データがディスパッチャを
経由することになります。

878 :NAME IS NULL:2009/07/14(火) 08:20:15 ID:???
共有されるネットワーク接続

俺なりの見解ですが、データベースリンク作成時に利用した
ID、パスワードを用いるCONNECTが共有されると理解してます。

多数の利用者(100人とか)がデータベースリンクを利用する場合、
非共有データベースリンクでは、
データベースリンク作成時に設定したID、パスワードを用いて、
SQLを実行する度にリモートデータベースにCONNECT
していたので、メモリリソースの無駄遣い、CPU時間の無駄遣い
と考えたのだろうと理解しています。


879 :NAME IS NULL:2009/07/16(木) 09:52:49 ID:???
たいした顧客情報量でもないのにオラクル使ってる中小企業の社長さんは無知なの?

880 :NAME IS NULL:2009/07/16(木) 14:02:18 ID:???
>>879
世の中は二者択一。自分で作るか作ってもらうか。
作れないなら高くても依頼するしかないだろう。
DBの種類もまかせるしか無いだろう。

881 :NAME IS NULL:2009/07/16(木) 19:17:30 ID:???
>>879
逆に誰もが知ってる大企業の取締役が
Excelでヒイヒイ言いながら損益の資料を作ったりしています。
損益に数千万円の誤差が出た、なんて逸話があります。
その逸話の企業は、Excelで損益計算するのをやめたそうです。


882 :NAME IS NULL:2009/07/16(木) 20:42:13 ID:???
>>879
みんなが知ってるN○○と無名の小企業
どっちにシステム作ってもらっても似たり寄ったりなのに
どちらが選ばれるかは自明だろ?
そういうことだよ

883 :NAME IS NULL:2009/07/16(木) 21:57:55 ID:???
いくらエクセルでも誤差は無いでしょ。
誤入力ならともかく

884 :NAME IS NULL:2009/07/16(木) 23:16:10 ID:???
二進化浮動小数点と十進化浮動小数点の違いという話じゃない?

885 :NAME IS NULL:2009/07/17(金) 07:19:01 ID:???
>>883
私が聞いたのは、経営戦略上の
重要な指標値(小数点あり)を計算するロジックに、
誤差を増幅させてしまう処理が、
そうとは知らず含まれていて・・・なんて話でした。
ttp://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml
こういうの、ご存じないですか?

>>884
それです。


886 :NAME IS NULL:2009/07/17(金) 07:52:30 ID:???
わかります、ホスト言語で2進化浮動小数点型を使って台無しにするわけですね。

887 :NAME IS NULL:2009/07/17(金) 08:04:27 ID:???
OracleをでっかいExcelだと思ってる中小企業の社長がいましたよ。
式はどこにいれるの?どうやったら印刷できるの?
とリアルで聞かれたことがある。そなもん売りつけるなよ。

888 :NAME IS NULL:2009/07/17(金) 10:34:20 ID:???
確かにExcelで顧客情報や会計を管理してる企業は多いな。
検索とかめんどくさそうだしLAN内のPC全部にExcel入れてExcelの共有ファイル開くとか効率悪そうな事してる。
仕事情報誌で「要エクセル」とか書いてある企業はたいていそんな企業。
データベース一式売り込む絶好のカモ。

889 :NAME IS NULL:2009/07/17(金) 10:56:42 ID:???
>>879
どうせMySQLとか知らないだろうしOracleでいいんだよ

890 :NAME IS NULL:2009/07/17(金) 19:01:27 ID:???
エクセルがDBより優れてる点は個々人で簡単確実にバックアップが取れる点。
素人がDB管理して、ある日DBが壊れました、バックアップがしっかり
できてなくて復旧できませんでした、なんて言われたらたまらない。

891 :NAME IS NULL:2009/07/17(金) 19:56:09 ID:???
SIer中小企業相手にがOracle売って儲けになるんかね。
MySQLとかPostgresで安価に構築し(てるように見せかけ)て、
システム構築してやったほうが営業上お得じゃね?

Oracle 100万円 + システム開発費用 100万円=200万円の原価より、
MySQL  0円  + システム開発費用 100万円=100万円の原価で営業かけたほうが、
客目線では安いし、どうせ違いなんて中小規模じゃ大差ないんだし。

892 :NAME IS NULL:2009/07/17(金) 21:22:57 ID:???
Oracleが使える人間は金出しゃ買ってこれるが、MySQLだとそういうわけには
いかないからなぁ。「MySQL使える人」で募集かけてもロクなのいやしねぇ。

893 :NAME IS NULL:2009/07/17(金) 21:36:54 ID:???
>>890
MS系はそこが強いよな
Oracleはバックアップの難易度がちょっと高い

>>891
Oracleなら安いパートナーが使えるんだよ

>>892
PostgreSQLも似たような状況?
日本でMySQLって安いベンチャーとか、WEBのおまけでシステム組んでるとこってイメージなんだが

894 :NAME IS NULL:2009/07/17(金) 22:27:08 ID:???
Oracleの資格試験は高すぎませんか?

895 :NAME IS NULL:2009/07/17(金) 22:53:17 ID:???
上位資格は高すぎるな
あれ大手5社以外に取らせる気ないだろ

896 :NAME IS NULL:2009/07/17(金) 23:45:25 ID:???
試験はともかく、講座がなw
初学者ならともかく、実務やってる人にとっては、講座のレベルは低いし。

897 :NAME IS NULL:2009/07/19(日) 15:21:09 ID:???
顧客向けのサービスの種類をテーブルで管理しています。
単純に顧客が選択できるサービス毎に連番振って管理すればいいやとか思ってたら、
過去にあった特定のサービスが細分化して、あるサービスグループだけ切り取るのが大変になってしまいました。
そこでプライマリキーに連番を使用するのを止め、サービス名そのものをプライマリーキーにし、
GROUP1_SERVICE1
GROUP1_SERVICE2
GROUP2
のように管理した上で取り出す時はLIKEなどを使用しようと考えているのですが、
これで問題ないでしょうか?
アドバイスいただければ幸いです。

898 :NAME IS NULL:2009/07/19(日) 15:44:04 ID:???
主キーは一意性必須だよ。
検索キーに使いたいだけなら索引を張ればいい。
複数のカラムを纏めて1つの主キーや索引にすることができる。
名前というのは将来的に変更される可能性があるから主キー等はコードとして持つこと。

…と文の意味がよく分からないので適当に言ってみた。


899 :NAME IS NULL:2009/07/19(日) 16:27:00 ID:???
>>898
ありがとうございます。複数のカラムを主キーにするということですね。

例えばOracleのデフォルトで用意されてるdept表とかはdeptnoが設定されていますが
dnameを主キーにした方が参照する際も可読性も増して便利なんじゃないかと思ったんです。
将来部門名が同じでも内容が異なる部門が発生する可能性とヒューマンエラー排除のどちらを優先すればいいのか。

900 :NAME IS NULL:2009/07/20(月) 01:05:16 ID:???
CUSTOMER_IDというNUMBERの主キーがあるとします。
INSERTするときに主キーは自動でカウントアップしたいです。
SEQUENCEを使用しない場合、どんなやり方があるの?
非PL/SQLで。

INSERT INTO CUSTOMER (CUSTOMER_ID,CUSTOMER_NAME) VALUES(SELECT MAX(CUSTOMER_ID) + 1 FROM CUSTOMER, '顧客A')

みたいにできるのかな?
でもこの場合、1件も無かった場合は・・・

901 :NAME IS NULL:2009/07/20(月) 09:01:25 ID:???
>>900
それでは二人がトランザクション切って同時にINSERTしたら番号がかぶってしまう

902 :NAME IS NULL:2009/07/20(月) 11:56:37 ID:???
ふーん。
無理なんだ。

903 :NAME IS NULL:2009/07/20(月) 13:08:00 ID:???
>>900

パフォーマンス無視していいのなら、采番表を作って、そいつを悲観ロックで取るという方法だろうな。

904 :NAME IS NULL:2009/07/20(月) 13:41:58 ID:???
どうしてもそれでやりたいなら、失敗したらリトライするロジック組むしか
ないだろうが、なんでsequenceを使いたくないのか、だな。

905 :NAME IS NULL:2009/07/20(月) 23:06:16 ID:???
シーケンスだと飛び番なしの連番を生成できないという欠点がある。


906 :NAME IS NULL:2009/07/21(火) 00:08:24 ID:???
それが使いたくない理由?主キーで飛び番不可の理由は?

907 :NAME IS NULL:2009/07/21(火) 00:44:20 ID:???
>>906
いや、本人じゃないから知らないよ。
画面に表示するIDなら飛び番しないように
実装しろと言われてもおかしなことではない。

908 :NAME IS NULL:2009/07/21(火) 02:00:47 ID:???
あるね〜、飛び番許さない案件。

909 :NAME IS NULL:2009/07/21(火) 02:21:23 ID:???
使い方を限定すれば飛び番を防げると思うが
たぶんそれは要件に反する

910 :NAME IS NULL:2009/07/22(水) 09:24:04 ID:???
>>900
利用者がごくわずかで、同時のINSERTが考えにくいなら
ヤッツケ実装としてはアリ。開発初期のプロトタイプとか。
一意制約違反のエラーが稀に起きることもあると覚悟してね。
Try〜Catchして失敗したら元の画面に戻るなら、
運用に持っていっても、トラブルにはならないと個人的には思う。

定石は>>901のとおり。

INSERT INTO CUSTOMER (CUSTOMER_ID,CUSTOMER_NAME)
SELECT NVL(MAX(CUSTOMER_ID),0) + 1, '顧客A' FROM CUSTOMER;
なんて感じでNVLをかければ、最初の1件から可能。


911 :NAME IS NULL:2009/07/22(水) 09:38:42 ID:???
>>897>>899
目的が「特定のグループに属するサービスを一括指定する」ならば、
サービス表以外に、サービスグループ表、リンク表を実装するのが定石。

SERVICE (SERVICE_ID, SERVICE_NAME)
SERVICE_GROUP (GROUP_ID, GROUP_NAME)
SERVICE_GROUP_LINK (GROUP_ID SERVICE_ID)

実装例としては、
サービス選択画面にて「名前」で検索させたとき
サービス名での検索結果とサービスグループ名での検索結果
の両方を表示して、サービスグループが選択された場合は、
LINK表にあるサービスを全て選択したとして動作する、なんて感じ。



912 :NAME IS NULL:2009/07/22(水) 19:43:29 ID:???
Oracle10g
ご教授願います。

(1)テーブルのカラムをNUMBER型2桁から4桁に拡張するためにDROP TABLE⇒CREATE TABLEを実行。
(2)そのテーブルをDESCRIBEコマンドで4桁に変更されていることを確認。
(3)そのテーブルをSELECT文で参照しているだけのビューをDESCRIBEコマンドで確認したところ2桁のままとなっている
(4)試しに4桁のデータをテーブルに入力したところ、ビューでもきちんと4桁で表示された


テーブルの桁数も変更した場合、そのテーブルを使用しているビューもCREATE OR REPLACE VIEWしないと
カラム情報(データディクショナリ)は更新されないのでしょうか?
動作上問題なさそうですが、気持ち悪いのでCREATE OR REPLACE VIEWしました。。。


913 :NAME IS NULL:2009/07/22(水) 21:00:34 ID:???
OS:win 2008
DB:Oracle 10g R2

ほぼ同じ項目を持つテーブルA,Bがありまして
SELECT
CASE WHEN A.COL001 = B.COL001 THEN '1' ELSE '0' END AS COL001_FLAG

てな感じで、両テーブルの各項目を比較して結果を取得しようと思ってます。

各項目の比較は
A.COL001 = B.COL001
でいけるかなと思ったのですが、COL001はNULLの可能性があるので
COALESCE(A.COL001,'XXX') = COALESCE(B.COL001,'XXX')
にしようかと思ってます。
これ以外にもっと良い方法って何かないですかね?

914 :NAME IS NULL:2009/07/22(水) 21:15:16 ID:???
>>913
あとはIS NULL判定するとか・・・

CASE
WHEN A.COL001 IS NULL THEN '0'
WHEN B.COL001 IS NULL THEN '0'
WHEN A.COL001 = B.COL001 THEN '1'
ELSE '0'
END AS COL001_FLAG

915 :NAME IS NULL:2009/07/22(水) 21:24:36 ID:PNVb1M3B
>>914
それだとA、B共にNULLの場合0になる

916 :NAME IS NULL:2009/07/22(水) 21:44:11 ID:???
素直にnlv関数つかえよ…そのためにあるような関数だろ。

917 :NAME IS NULL:2009/07/22(水) 21:45:10 ID:???
nvlだた。すまん。

918 :NAME IS NULL:2009/07/22(水) 22:01:40 ID:???
相変わらず「ご教授」って間違う日といるんだね。

919 :NAME IS NULL:2009/07/22(水) 22:11:29 ID:???
お前も「日と」ってなんだよ。

920 :NAME IS NULL:2009/07/22(水) 22:42:12 ID:???
よろしくお願いします。

pl/sqlで

select * from table1 where hogehoge
union
select * from table2 where hogehoge

の結果を

select * bulk collect into array from table

みたいに配列に格納するには
どのように書けばいいのでしょうか?

環境は oracle 10g, RedHatLinux です

921 :NAME IS NULL:2009/07/22(水) 22:55:33 ID:???
>>920
まっ、手っ取り早いのが

select * bulk collect into arrary from
(
select * from table1 where hogehoge
union all
select * from table2 where hogehoge
)

すまんが、意味がない限り"union all"に差し替えさせてもらった

922 :NAME IS NULL:2009/07/22(水) 22:59:58 ID:???
>>912
もう再現しにくいだろうけど、
ビューで使っているテーブルの定義が変更された場合、
ビューのステータスはINVALID状態になる。
SELECT STATUS FROM USER_VIEWS WHERE VIEW_NAME='xxx';
で見てみよう。
ALTER VIEW xxx COMPILEするか、
一度ビューをSELECTすると自動的にCOMPILEされる。
そうすると、DESCで見える構成が適切に更新される。

923 :NAME IS NULL:2009/07/22(水) 23:08:47 ID:???
>>913
DECODE関数はどう?
SELECT DECODE(A.COL001,B.COL001,'1','0') AS COL001_FLAG

たぶん、NVLを追加せずともイケると思うんだけど。

924 :920:2009/07/22(水) 23:10:11 ID:???
>>921

ありがとうございます。
明日会社でやってみます。

ちなみに教えていただいたSQL文は
()の中だけのSQL文に比べて実行速度は
かなり落ちるでしょうか?それともほとんど変わりませんか?

元の質問に書けていなかったのですが、アプリで実装する前に
SQLの大体の実行速度を計りたいのです。



925 :913:2009/07/22(水) 23:58:00 ID:???
>>914-917>>923
レスありがとん
IS NULL判定、nvl関数、decode関数
それぞれ使って試してみます

926 :NAME IS NULL:2009/07/23(木) 00:14:59 ID:???
>>924
それは環境次第、データ量次第
一つ言えるのが、データ量によるけど"UNION"と"UNION ALL"とでは
劇的にパフォーマンスが変わるよ

927 :NAME IS NULL:2009/07/23(木) 08:30:56 ID:???
アプリで実装する前に性能は確認できるよ。
SQL*PlusからPL/SQLブロックを実行すればいい。
ttp://www.shift-the-oracle.com/sqlplus/tutorial/execute-plsql.html


928 :913:2009/07/23(木) 21:21:57 ID:???
結局、decode関数使うことにしました。
レスくらたみんあさんくす

929 :NAME IS NULL:2009/07/26(日) 21:24:14 ID:???
REDOアーカイブを自動作成するようにしたら
アーカイブ作成してる間SQLの応答が返ってこないんだけどなんで?
REDOグループは5つあるし空き領域も十分だしCPU使用率も10%程度。

930 :NAME IS NULL:2009/07/26(日) 22:35:34 ID:???
ふつうは返ってくるよ
HDDが遅いんじゃないの

931 :NAME IS NULL:2009/07/27(月) 06:43:39 ID:???
何で待機しているのか調べてみては?

ttp://perfopy.ashisuto.co.jp/oracle_performance_educ/taiki_event.html
こんな感じにV$SYSTEM_EVENTビューを使って待機イベントを調べられるはず。

932 :NAME IS NULL:2009/07/27(月) 08:26:18 ID:nmXGDGSs
10g使ってDB作る予定なんだけど
ハードでストライピングとミラーリングしてるんだけどASM使うメリットってある?
RAWデバイスで十分?


933 :NAME IS NULL:2009/07/27(月) 11:54:11 ID:???
ファイルで十分。
つか、OSくらい書け。
RAC使うなら、ASMにしておいたほうがいいかもしれんが。


934 :NAME IS NULL:2009/07/27(月) 12:29:21 ID:???
>>932

RAW使うぐらいならASMの方が領域管理が楽といえば楽かもな。
でも>>933が言っている様にRAWの性質はO/Sにかなり依存するからな。

935 :NAME IS NULL:2009/07/27(月) 12:31:21 ID:???
>>932

あとOracle 12gではRAWは完全にサポートしなくなると米Oracleは発表した。

936 :NAME IS NULL:2009/07/27(月) 13:29:28 ID:nmXGDGSs
OSはソラリス10でRAC使う予定!

937 :NAME IS NULL:2009/07/27(月) 19:43:32 ID:???
Solaris10なら、x86かSPARCかを書こうよ。
実績持ってる人がいるかもしれないよ。

ま。
RACなら、ASMを利用するのが普通みたいだけどね。
ASMも内部的にはRaw Deviceを扱っているというし。

938 :NAME IS NULL:2009/07/27(月) 20:06:31 ID:???
プロシジャ内でSELECT文を使うときの対象テーブル名を引数で動的に切り替えたいんだけど
このときは動的SQL(execute immediate)を使えば良いのでしょうか?
その場合、動的SQLを使用した場合の懸念点などあるでしょうか?(パフォーマンス面など)

939 :NAME IS NULL:2009/07/27(月) 20:36:48 ID:???
>>938
SQLインジェクチオンに気をつけなッ!

940 :NAME IS NULL:2009/07/27(月) 21:53:41 ID:???
>>938
俺は、明示カーソルでOPEN、FETCHをしておいて
CLOSEをよく忘れる。
動的SQLを利用した時、特に忘れやすい。
CLOSEせずに同じカーソル名で動的SQLをOPENしたり。
我ながら小学生レベルだと思う。カナシイ。

941 :NAME IS NULL:2009/07/29(水) 20:03:01 ID:???
>>938
パフォーマンスは明らかに下がる

942 :NAME IS NULL:2009/07/29(水) 20:50:31 ID:???
でもDBMS_SQLパッケージ使うよりは、断然パフォーマンスましになったんじゃね?
手続きも楽だし。

943 :NAME IS NULL:2009/07/29(水) 21:03:16 ID:???
>>941
パースや実行計画のコストが無視できないような短時間で終了するクエリでならば明らかだが、
複雑で時間のかかるクエリではそうとも限らん。特にデータに偏りがある場合などは。

944 :NAME IS NULL:2009/07/29(水) 21:13:57 ID:???
動的SQLとか使うのは頭が悪い奴

945 :NAME IS NULL:2009/07/29(水) 21:48:41 ID:???
頭が良い奴は両方の得失を理解して使い分けができる

946 :NAME IS NULL:2009/07/29(水) 21:53:06 ID:???
得失がわかってない奴が偉そうにいったところでねぇ

947 :NAME IS NULL:2009/07/29(水) 21:56:27 ID:???
分かっている方説明ヨロ

俺は分からん・・・

948 :NAME IS NULL:2009/07/29(水) 22:14:44 ID:???
単純な話、条件によって最適なアクセスプランが異なるようなケースでは
その都度実行計画を作る方がトータルのコストが低い場合がある。
オプティマイズをミスった場合のペナルティは場合によっては非常に
大きいから、あたりまえといえばあたりまえ。

949 :NAME IS NULL:2009/07/30(木) 07:30:02 ID:???
10gR2でも/*+ RULE */ヒント文は有効なので、
動的SQLに埋め込んでルールベースで動かす、
というのも、オプティマイズをミスった場合のペナルティから
回避する方法の一つ。

俺の経験では、コストベースオプティマイザに任せた結果、
大規模な表同士のジョインでハッシュジョインが
選択された時に一時表領域を食い尽くして、
尋常じゃないレベルまで性能低下するケースがあった。

ちなみに/*+ RULE */ヒント文を埋め込むと、
ソートマージジョインか、ネステッドループジョインの
どちらかになります。

950 :NAME IS NULL:2009/07/30(木) 08:32:36 ID:???
>>944
「俺が設計したファッキンテーブルじゃねえよ糞ったれ」
という事もあるかも知れん。

>>946
部屋にエアコンなくてイラついてんのか?

951 :NAME IS NULL:2009/07/30(木) 20:36:56 ID:???
得失が分かってない奴キタコレ↑

952 :NAME IS NULL:2009/07/31(金) 02:18:47 ID:???
すみません質問です。

今、Microsoft Office InfoPath 2007を使っているのですが、
Oracleに接続してDBの値を使えるらしいのです。
(DBから取得した値をテキストフォームに挿入ということがやりたいです。)

ですが、肝心のOracleへの接続方法が分かりません。

スレ違いかもしれませんが知っている方がいらっしゃいましたら
教えて頂けないでしょうか。

953 :NAME IS NULL:2009/07/31(金) 06:42:43 ID:???
oo4oでORACLE接続するVBAソースを持ってるけど、
著作権者が会社だから公開できないや・・・

ttp://www.atmarkit.co.jp/fdb/rensai/excel2oracle02/excel2oracle02_2.html
とりあえず、上記を参考にExcelでの接続を体験して、
自分なりに改造してVBAの書き方を理解してから、
InfoPathに移植した方が良いのではないかと思います。

Oracle接続するExcelファイルは、テストツールとしても
有効活用できますから。


954 :NAME IS NULL:2009/07/31(金) 07:25:48 ID:???
>>963
ありがとうございます。

以前にVBAでのORACLEの接続経験はあるのですが、
InfoPath2007はVSTAを使ってC#orVB(今回はC#を使おうと思ってます)
で記述する感じでした。

試しにC#でそれらしい記述を書いてみたのですが、usingでOracle接続に必要な
クラスをインポートした所、エラーになり、どんな設定をすれば使えるように「なるのか
が分からないというのが今の状態です。

プログラムを書かないで接続する方法があればそちらで接続したいのです(SQL Server
とかはInfoPathの設定で接続できるみたいです)。
ですがOracleは今の所の調べではそういう設定は無さそうでした...


955 :NAME IS NULL:2009/07/31(金) 18:37:36 ID:???
InfoPath2007は、VBA使えないのかな?
VBAの後継は、
Microsoft Visual Studio 2005 Tools for Applications (VSTA)って言うんだね。

ORACLE社からは11gに関連して
ttp://www.oracle.com/technology/global/jp/tech/dotnet/doc/odt11_whatsnew.pdf
にWord/Excelに関する記述、Microsoft Visual Studio Tools for Office(VSTO)
の記載があるけど

ttp://blogs.msdn.com/hiroyask/archive/2006/02/06/525336.aspx
によると、VSTOとVSTAとは同じじゃないんだね。

いやぁ。勉強になった。
Excel2007を互換モードで使ってるオイラ(VBA利用者)は化石になるね。

956 :952:2009/07/31(金) 21:12:33 ID:???
InfoPath2007とOracle接続の件ですが今日解決することができました。

必要なライブラリ(?)を"参照の追加"で追加しないとOracele接続クラスの
メソッドが使えなかったみたいです。

Officeはそこまで使わないので設定の流れが分からなくて...面目ないです。

しかしC#はライブラリが充実していて結構使い易いですね〜

以上お騒がせ致しました。

957 :NAME IS NULL:2009/07/31(金) 22:00:09 ID:???
ORACLEってダウンロードできますか?

958 :NAME IS NULL:2009/07/31(金) 22:34:05 ID:???
できますん

959 :NAME IS NULL:2009/08/01(土) 04:10:55 ID:4qRkq2W/
質問です。
Oracle 9iとPro cobolを使っています。

条件にマッチする行が15件有る場合、
以下のようなプログラムを実行すると、

EXEC SQL
 BEGIN DECLARE SECTION
END-EXEC
01 Touroku-REC-TABLES
  05 ht-id PIC X(12) OCCURS 25.
  05 ht-name PIC X(40) OCCURS 25.
EXEC SQL
  END DECLARE SECTION
END-EXEC.
.
.
.

EXEC SQL
 SELECT id, name
  INTO :ht-id, :Ht-name FROM touroku
END-EXEC

一度に15件取得して、配列に代入する事になるんですか?
それとも、一件のみの取得ですか?
いままでは、複数件取得したい場合
カーソルを作ってNOTFOUNDが出るまで、
一件取得->配列に代入のループを行っていたので
今日初めてこのプログラムを見て、
一件取得なのか、全部取得なのかどっちか疑問に思っています

960 :NAME IS NULL:2009/08/01(土) 16:59:51 ID:???
俺は、Pro*COBOLを使った事無いけど、PL/SQLでは、
ttp://www.shift-the-oracle.com/plsql/select.html
に書かれているような、実行時のエラーを経験している。
-------------------------------------------------
ORA-01422: 完全フェッチがリクエストよりも多くの行を戻しました
-------------------------------------------------

多分、同じ事になるんではないか。


961 :NAME IS NULL:2009/08/03(月) 23:13:01 ID:???
ここでいいのか分からないけど質問です。
Oracle10gとWindowsCE5.0って直接SQLのやり取りって出来ない?
どうも、WindowsCE5.0用のオラクルクライアントが無いようなのですが。
直接SQLでやり取り出来る方法があれば教えてください。

環境
・PDA(WindowsCE5.0)
・.NetCompactFramework2.0
・VB.net(VS2005)

962 :NAME IS NULL:2009/08/04(火) 16:50:28 ID:???
データベース未経験でわからないので根本的なことですが教えてください。

oracleってどういった業務に使われてるんですか?

963 :NAME IS NULL:2009/08/04(火) 16:52:24 ID:n7ZF7BFv
自分が所有しているCDをアーチストごとに分類したりするのに良く使われるな

964 :NAME IS NULL:2009/08/04(火) 17:21:36 ID:WF6K2+ix
Oracle10g R1 は
Mac OS X Tiger(PPC)で動くらしいのですが
LeopardはPPCとIntelの両方で動くのでしょうか

R2はIntel Mac版があるようなのですが・・・

965 :NAME IS NULL:2009/08/04(火) 20:46:17 ID:???
>>961
CE用のクライアントは聞いたことないね。
ミドルウェアを買う必要あるんじゃないかな。


>>962
CRM(カスタマーリレーションシップマネジメント)
SCM(サプライチェーンマネジメント)
SFA(セールスフォースオートメーション)
ERP(エンタープライズリソースプランニング)
KM(ナレッジマネジメント)
などです。

966 :NAME IS NULL:2009/08/04(火) 23:47:42 ID:???
>>961
ttp://www.fastconnector.com/product/product01.html

OracleLiteClientじゃダメなの?
ttp://otndnld.oracle.co.jp/document/products/lite10g/10.2.0/html/B19289-02/nvwcetu.htm#BEJJGCBE


967 :NAME IS NULL:2009/08/05(水) 01:36:05 ID:???
よく分からないがOracleLiteClientってOracleLiteServer専用とかじゃない?

Javaが使えるなら確かJDBCのThinドライバでクライアントの
インストールなしにサーバに接続できた気がする。

968 :NAME IS NULL:2009/08/05(水) 07:50:03 ID:???
Windows Mobileは、1週間に1回ぐらいフリーズして、ため息。
3ヶ月に1回ぐらい、知らぬうちに工場出荷状態に戻ってて、激怒。
調子が悪くて自分でハードリセットする羽目になって、涙目。

Windows Mobileという製品を十分評価してからの方がいいよ。

969 :NAME IS NULL:2009/08/05(水) 11:49:38 ID:lbXkSQVv
ODBC接続のとき、Oracleのドライバーを使用すると
ユーザー名が全角10文字より長い場合エラーになるのですが
仕様ですか?

970 :NAME IS NULL:2009/08/05(水) 19:49:58 ID:???
ユーザー名が全角文字って初めて聞きました。
このスレ住民には、そのような使い方してる人は、
いないと思います。

普通は半角英数字とアンダースコア(A-Z、0-9、_)
だけ使って、先頭はアルファベットで、
30バイト以内でユーザー名を設定しますよ。
TARO_YAMADA
GREATSYSTEM360
のような感じですね。

ちなみに、全角10文字より長いとエラーが発生する
というのは、UTF-8では日本語は3バイトなので
30バイト制限に引っかかっているのかもしれません。

971 :NAME IS NULL:2009/08/06(木) 07:46:30 ID:???
長文失礼します。
10gR2のキャラクタセットがJA16SJISTILDEの現行インスタンスを
10gR2のキャラクタセットがAL32UTF8の新インスタンスとして再構成したいです。
なお、現行のクライアントアプリは、入力バイト数の制限チェックを
SJIS想定で判定しております。

今、自分で考えている方針としては、以下の1〜5です。
とりあえず自分なりに1回経験を積むつもりですが、
経験談、指摘事項があればアドバイスをいただきたいです。
当初はORACLE社推奨どおりCSSCANからCSALTERを使う事も
考えましたが、いまひとつ信頼しきれないと感じています。
よろしくお願いいたします。

1)
現行インスタンスで、全スキーマの全テーブルのデータ件数、
テーブル中の各カラムの格納バイト数を調査する。
CSSCANにより問題箇所の事前情報も得ておく。

2)
1で、全テーブルの全カラムの格納バイト数が
VARCHAR2(1333)以内に収まる、CHAR(666)以内に収まる
データであると判明したら、3以降に進む。
収まらないようなら、データ内容について
AL32UTF8にて4000バイトに収まりそうか十分に検討、
データを削るなどの作業をして、1に戻る。

3)
JA16SJISTILDEのインスタンスをエクスポート。
AL32UTF8のインスタンスにROWS=Nでインポート。
1〜2の情報を元に、
ALTER TABLE xxxx MODIFY (yyyy VARCHAR2(4000));
のようにテーブルの定義を変更する。

4)
AL32UTF8のインスタンスにIGNORE=Yオプションで
データをインポート
インポート後、1のデータ件数と比較し、レコードの
欠落が無いことを確認する。欠落があった場合、
TRUNCATE TABLE xxxx
ALTER TABLE xxxx MODIFYして、インポートしなおす。

5)
現行のクライアントアプリは、当面そのままとし、環境変数
NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE
のままで利用する。
キャラクタセットの変換はOracle Netに任せる。
性能低下が懸念されるため、性能低下度合いを確認する。
将来的には、環境変数
NLS_LANG=JAPANESE_JAPAN.UTF8
で動作するよう、
具体的にはハングルと日本語を同時に利用可能なように
クライアントアプリを修正する。

972 :NAME IS NULL:2009/08/06(木) 08:30:58 ID:???
>具体的にはハングルと日本語を同時に利用可能なように

民主党か?
売国奴は日本から出て行け。


973 :NAME IS NULL:2009/08/06(木) 09:20:08 ID:???
うちはマルチバイト系の文字を使うカラムは全部NCHAR系に変えて行ったな。
バイトで処理してるアプリの対応は必要だったが最終的にはすっきりした。


974 :NAME IS NULL:2009/08/06(木) 11:27:44 ID:???
データベース移行なんてしなくてもCHAR、VARCHAR2を
NCHAR、NVARCHAR2に定義変更すればいいんじゃない?
多分文字コードはUTF16で定義されてるだろうから、
クライアントの長さチェックの修正も必要ない。

975 :NAME IS NULL:2009/08/07(金) 00:34:30 ID:???
>>971
記憶でレスするので間違えてたらスマソ。
(3) の Import で SJIS→UTF8の変換が必要と判断され、
Import 時の CREATE TABLE でカラムサイズ1.5倍が動い
た気がする。なのでDDLを作り直したほうが良いかもしれない。

あと CSALTER でも SJIS→UTF8はスーパーセットじゃない
のでNGのはず。

ナショナル・キャラクタセットへの変換は、アプリによってはフェッ
チ時のAPI変えたりとか面倒なケースがあったような。

976 :NAME IS NULL:2009/08/07(金) 06:05:16 ID:???
>>972
私も同じ考えでしたから、偉そうに言えませんが
日本の企業が韓国、中国に進出するために
必要なんだそうです、上司いわく。

>>973-975
参考になりました。ありがとうございます。


さて、土日に自宅で頑張ってみます。

977 :NAME IS NULL:2009/08/14(金) 07:21:24 ID:???
やべえ。スレッドストッパーだ、オレ。

978 :NAME IS NULL:2009/08/19(水) 14:49:32 ID:???
11gのテーブルのダンプを9iにインポートすると、ORA-0096エラーがでます。

エクスポートは9iが稼働してるサーバから、
exp hoge/hage@11gSVR file=t.dmp
みたいな感じでエクスポートしました。

それを
9iが稼働してるサーバで
imp hoge/hage file=t.dmp full=y
みたいな感じでインポートすると

「ORA-00096: 無効な値がパラメータplsql_compiler_flagsに指定されて
います。値はNON_DEBUG, DEBUG, INTERPRETED, NATIVEの中から設定する
必要があります」

のエラーが出てしまいます。
この下向きのインポートは10gを経由しないとダメなんでしょうか。


979 :NAME IS NULL:2009/08/19(水) 17:51:33 ID:???
11g R1⇒9i R1はそもそもできないそうです


980 :NAME IS NULL:2009/08/19(水) 21:44:53 ID:???
>>978
書き込みを読んで、なにも調べずに想像だけど。
plsql〜のエラーってことはさ、PLSQLのコンパイルに失敗しているってことでしょ。
exp/impってさ、テーブルやらインデックスやらビューやら権限やらPLSQLやら
ありとあらゆるオブジェクトが対象になっているのね。fullでやると。

んで、今回の11gから9iがテーブルのデータだけで良いってんなら。
fullやめて、tablesパラメータでテーブル全部指定してテーブルだけ
インデックスもほしいならindexes=yで、データだけ入れれば?
んで、さらに、途中でエラーが発生してもエラー停止しないって引数
が(名前忘れた)あるからそれもyでつける。

これでデータだけならできんじゃね?

981 :NAME IS NULL:2009/08/20(木) 09:21:14 ID:???
>>979
>>980

お返事ありがとうございます。
imp hoge/hage file=t.dmp tables=table1 ignore=y
でやってみましたが現象変わらずでした。

10g R2(?)以降はimp/expコマンドは正式サポートされていないようですし、
この関係で11g->9iのデータ移行は簡単にいかないのでしょうかね。

データだけで良いので、CSV経由ででも試してみます。


982 :NAME IS NULL:2009/08/21(金) 00:02:08 ID:???
>>981
CSV経由するくらいなら、DATABASE Link接続でInsert Selectは?

983 :NAME IS NULL:2009/08/21(金) 00:03:48 ID:???
LOBでトラブる

984 :NAME IS NULL:2009/08/21(金) 09:56:58 ID:???
>>982
DATABSASE Linkは使ったこと無かったのですが、後学のために試して
みたいと思います。ありがとうございました。

985 :NAME IS NULL:2009/08/21(金) 13:45:03 ID:???
おいらにとっちゃデジタルの方がどうにでもできる

986 :NAME IS NULL:2009/08/21(金) 22:43:27 ID:???
Oracleの9iで巨大なテーブルデータをロード、アンロードしたいんだけど、
一般的にどんな方法とるの

987 :986:2009/08/21(金) 22:46:52 ID:???
ごめんなさい、途中でエンター押してしまった。

Oracleの9iで巨大なテーブルデータをロード、アンロードしたいんだけど、
一般的にどんな方法とるの?
今は、普通にPro*CからSELECT * FROM・・ってしてデータ取得して
全件とってきてるんだけど、一時表領域がパンクしてエラーになってる。
巨大テーブルの全件アンロードとロードって結構やりそうだと思うんだけど
これだっていう一般的な方法がぐぐっても見つからんかった。

988 :NAME IS NULL:2009/08/21(金) 22:57:35 ID:???
9iまでならimp/exp (以降ならimpdp/expdp)
ロード時、アーカイブログはオフる

989 :NAME IS NULL:2009/08/21(金) 23:11:23 ID:???
>>988
サンクス、確かにそれが普通っぽい気がする。
逆になんでそんな実装をしているんだとおもいます?
やっぱり、やっぱりロード時にオフる必要があるからでしょうか?
普通にテーブルの全データ取ってきてるだけなのに。
実装が不自然すぎて逆に意図があるんじゃないかと思ってしまう。

990 :NAME IS NULL:2009/08/21(金) 23:15:19 ID:???
質問ばっかりウザい
一つ答えてもらったんだから自分でなんとかしろよ

991 :NAME IS NULL:2009/08/21(金) 23:18:23 ID:???
別に質問してるわけじゃないし。
それに質問だとしても質問スレなんだから何か問題あるでしょうか?

992 :NAME IS NULL:2009/08/21(金) 23:37:44 ID:???
>>989
変な実装だと思った時は、素直にそう思った方がよい
(実際、無知から来る妙な実装を結構見てるから)

297 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)