トップページ⇒db
992コメント371KB

Oracle 質問総合スレ3

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001NAME IS NULL2008/10/07(火) 21:58:03ID: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
0002NAME IS NULL 2008/10/07(火) 22:02:51ID:???
>>1 乙であります。

取り合えず・・・。

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

0003NAME IS NULL 2008/10/09(木) 02:27:10ID:x7UcvDt0
Null age
0004NAME IS NULL2008/10/09(木) 23:01:42ID:???
null sage
0005NAME IS NULL2008/10/10(金) 01:33:20ID:WKuieuVm
Windows XP にて oracle 11g を使用しています

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

この時、例えば100レコードを配列バインドにしてインサートしたのですが
100レコードの中にエラーになったレコードが存在してもインサートを続行すると
なぜか配列最後尾(この場合は100番目のレコード)が
インサートエラーになっていないにも関わらずテーブルにインサートされません
エラーが100件中の何件目であろうと、エラーレコードがあると配列最後尾レコードが入りません
100件全てが正常にインサートされた場合は最後尾もちゃんと入るのですが・・・
これってODP.NET の仕様なのかなと思ったのですが
やっぱり自分のコードが怪しいですよね・・・
0006NAME IS NULL2008/10/10(金) 20:49:54ID:???
すいません、Windows 2003 にて oracle 10g を使用してるのですが
sqlplusを2つ立ち上げて、片方にinsertしているのに
片方のselectで出てきません、これってバグですか?
0007NAME IS NULL 2008/10/10(金) 22:04:32ID:???
>>6

それ、何て言うファントムリード?
RDBMSの意味、そしてトランザクションの隔離レベルを良く勉強してから
質問するといい。
0008NAME IS NULL 2008/10/10(金) 22:06:01ID:???
>>6

(´д`)つcommit
0009NAME IS NULL2008/10/11(土) 21:00:25ID:k0WWMN/3
8に激しく同意〜
0010NAME IS NULL2008/10/12(日) 00:00:34ID:???
ひと桁台でこんな質問って
こういうのでもいいのかと勘違いしてしまう
0011NAME IS NULL2008/10/12(日) 03:21:01ID:Rc/3eSvJ
インスタンスが起動していることを監視するには、smonだけ見てれば良いのでしょうか?
皆様はpmonとかバックグラウンドプロセス全部見てますか?
sqlplusで接続確認するとかプロセスだけ見てもハングしている可能性あるよは無しで、単純にプロセスだけ見る場合です。
0012NAME IS NULL2008/10/14(火) 00:08:12ID:WVWwMetc
>>11
startup nomountで起動するプロセスにするとか。
smonのほかに、少なくともpmon dbw lgwr ckptが起動するはず。
0013NAME IS NULL2008/10/14(火) 19:52:14ID:???
>>10
可能です。
以上。
はい次の方。
0014NAME IS NULL2008/10/14(火) 20:17:32ID:???
>>5
あー、そんなようなバグの話聞いたことあるね
自分は出くわしたことないけど
0015わかってない2008/10/18(土) 17:52:41ID:???
マニュアルにあるdboraの見本でrshしているのはなぜですか?
コメントアウトしちゃったけど後で影響でますか?
0016わかってない2008/10/18(土) 21:39:36ID:???
>>15
んー
su - oracle -c "$ORACLEO_HOME/bin/dbstart"
とかやりたくなるよな。
これができないプラットフォームがあるんじゃまいか?知らんけど。
0017NAME IS NULL2008/10/21(火) 20:33:45ID: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など)は、なんで
消えてしまうのか?

 この�@�A�Bについて、詳しい方、ご教授くださいませ。
0018NAME IS NULL2008/10/21(火) 20:36:43ID:???
ずれてました。訂正。

                    表領域  表作成
RESOURCEロールの中の「CREATE TABLE」   ○    ×
単独の「CREATE TABLE」          ×    ○
0019NAME IS NULL2008/10/21(火) 20:37:42ID:???
またずれた。すいません・・・_| ̄|○
0020NAME IS NULL2008/10/22(水) 00:10:51ID:???
ひでええええええええHTMLDBで
更新したら全データぶっとんだあああああああああ
ぎゃああああああああああああああああああ
0021NAME IS NULL2008/10/22(水) 10:03:45ID:???
>>17
RESOURCEロールにはUNLIMITED TABLESPACE権限が含まれてるからじゃね
含まれてるといっても、ロールに与えられてるんじゃなくて、自動付与だけど
しかも、これは10gよりずっと前からの仕様みたいなもんでしょ

session_rolesとかsession_privsで確認するのがよろしいかと
0022NAME IS NULL2008/10/23(木) 00:10:32ID:ZQGFGXgK
下記のSQL文がわかりません。
SQLの知識が少ないので、仕事で困っています。教えてください。

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

これは、テーブルAの項目Aの1桁目〜3桁を表示? この 'XXX' ← この文がわかりません。
0023NAME IS NULL2008/10/23(木) 00:39:36ID:???
DISTINCTは同じ内容の行を1行にまとめる為に使います。
もしその必要がないのであれば、単純に

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

でよいのでは?
0024NAME IS NULL2008/10/23(木) 00:42:31ID:ZQGFGXgK
>>23

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

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

項目Aが取得できなかったら、'XXX'を代入するイメージなのでしょうか?(>_<)
0025NAME IS NULL2008/10/23(木) 01:25:07ID:???
VALUE関数は、全く違う用途で使用されるものなので
単に項目Aの1桁目〜3桁を表示するだけなら必要ないのでは?
0026NAME IS NULL2008/10/23(木) 23:58:30ID:???
archive log list で表示される、アーカイブ先についてですが、
log_archive_dest_1、log_archive_dest_2 にアーカイブ先を指定した場合、
どちらがアーカイブ先として認識されるんでしょうか。

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

何か良案ありませんでしょうか。
0027NAME IS NULL 2008/10/24(金) 03:18:55ID:???
>>26

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

ちなみに今の状態から判断すると、location句が指定されているのは
log_archive_dest_2だけの方になってるとかないか?
エスパーでないので良く分からんけどな。
0028NAME IS NULL 2008/10/24(金) 03:25:33ID:???
>>24

実は問題が間違っていてVALUEではなくNVLだったとかじゃね?
0029NAME IS NULL2008/10/24(金) 22:45:42ID:???
>>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 です。
0030NAME IS NULL2008/10/25(土) 00:02:09ID:???
>>29

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

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



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

結局 log_archive_dest_2 の指定を削除して、取り合えずはリカバリできました。
ですが、どっちかを指定できるんじゃないかと思って聞いてみました。
できそうで、できないんで...
0032NAME IS NULL 2008/10/25(土) 03:25:18ID:???
RMAN使ってリカバれば自動認識とかしそうだけどな。
RMANは使いかなせれば意外と便利。
0033NAME IS NULL2008/10/25(土) 14:09:38ID:???
>>32
RMANですか。使った事ないです...
使いこなせれば、いろいろ便利なのかもしれないですね。
0034NAME IS NULL2008/10/29(水) 22:12:39ID:VF6FeZGZ
すみません。教えてください。
パッケージを使わずにストアドプロシージャのみでの配列操作で
レコードを更新することは可能でしょうか?

参考URLなどありましたら教えてください。お願いします。
0035NAME IS NULL2008/10/30(木) 20:35:22ID:k/PL7hUN
>34です。
助けてください。おながいします。
0036NAME IS NULL2008/10/30(木) 20:53:21ID:???
>>34
バルクフェッチ、バルクインサートの事かな?
それならここを参考すればいいと思う。。
http://www.shift-the-oracle.com/plsql/bulk-insert.html
10g以降であれば、かなり扱いが楽になった
0037NAME IS NULL2008/10/30(木) 22:04:05ID:k/PL7hUN
>>36
貴重な返信ありがとうございます。
0038NAME IS NULL2008/10/31(金) 13:30:57ID:???
これまで SQL Server を使っていた者です。
Oracleにおいては、テストや開発環境で安価もしくは無料で手に入るものは
あるのでしょうか?

例えば、SQL Server では以下のようなものがあります。
・最高の機能が開発限定として安価(1万未満)で販売されている。
・最高の機能が日数制限付(180日程度)で無料でDLできる。
・制限付で無料、C/Sシステム用として配布も可能がある。
0039NAME IS NULL2008/10/31(金) 23:54:09ID:???
ある。
体験版(中身は製品版と全く同じ。完全に開発目的なら、期限過ぎてもそのまま使用可能だったかな?)と
機能及びインストールベースが削られた、商用利用も可能なOracleXEという無料版
0040NAME IS NULL2008/11/03(月) 15:35:43ID:BN+eUsH7
Oracleのバージョンアップを検討していて、
8i⇒10gにします。
サポートできていないSQLがのっているサイト・掲示板などありますか?
0041NAME IS NULL2008/11/03(月) 16:05:22ID:???
OTNとかOiSCとか。
0042NAME IS NULL2008/11/03(月) 19:28:46ID:???
vistaに11gのトライアル版入れたけど、コピーやペーストができません。
どうすればいいでしょう?
0043NAME IS NULL2008/11/03(月) 19:30:09ID:???
できたよん
0044NAME IS NULL2008/11/03(月) 20:37:04ID:i9ran1sH
>>40
9iR1,R2 10gR1,R2の新機能、SQLリファレンスのマニュアルの
廃止になった機能を読む
0045NAME IS NULL2008/11/03(月) 21:01:07ID:???
>>42
ヒント:Office入れてる?IMEを標準にしてやって味噌。
0046NAME IS NULL2008/11/04(火) 11:30:11ID:???
助けてください・・・
急に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できないという無限ループになっています

どのような対処が適切なのかご教示いただけませんでしょうか
0047NAME IS NULL2008/11/04(火) 14:57:35ID:xSEhhdTy
TimesTenの話ってここで良いの?
従来のSQLクエリ文とは違うらしいけど
どう違うのでしょうか?
0048NAME IS NULL 2008/11/04(火) 23:35:02ID:???
>>46

現行ログが吹っ飛んだらDB止めたらいかんだろ・・・・。
mount状態で使えるかどうかは知らんが、現行ログが吹っ飛んだら
alter database clear unarchived logfile group <吹っ飛んだロググループ番号>;
で対応するもんだ。
0049NAME IS NULL2008/11/06(木) 18:14:27ID:6klp6LOT
どなたか教えてください。
OracleのデータブロックのI/Oサイズチューニングは、初期化パラメータDB_FILE_MULTIREAD_COUNTで行いますが、
Windows Server 2003での、I/Oサイズの変更は可能でしょうか?

どなたか教えていただければ幸いです。
0050NAME IS NULL2008/11/06(木) 18:17:22ID:???
Windows板池
0051NAME IS NULL2008/11/06(木) 23:27:18ID:???
>>49
> DB_FILE_MULTIREAD_COUNT に一致する情報は見つかりませんでした。
0052NAME IS NULL 2008/11/06(木) 23:34:20ID:???
>>49

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

0053NAME IS NULL2008/11/06(木) 23:43:34ID:???
NTFSっていうかWindows側で調節できるんかな?
UnixでもSolarisUFSはブロックサイズ8Kで64K I/Oでほぼ固定だったりするし。
VxFSは、その辺はかなり自由に設定できるけど。
0054NAME IS NULL2008/11/07(金) 02:04:21ID:???
本当にくだらない質問ですいません。

Win2000serverに10g release2をインストールしたいのですが、インストーラはOTNの何年何月版に有るのでしょうか?
簡単に分かるだろうと思ってファイルを漁ったのですが見つかりません…
0055NAME IS NULL2008/11/07(金) 03:28:45ID:???
ユーザーの権限について教えてください

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

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

そのへん、どやってるやるのでしょう?
0056NAME IS NULL 2008/11/07(金) 03:35:59ID:???
>>54

ほらよ(´д`)つhttp://www.oracle.com/technology/software/products/database/index.html
0057NAME IS NULL 2008/11/07(金) 03:37:56ID:???
>>55

指定のテーブル群だけを参照/更新させるというのは、オブジェクト権限で与える。
特定表領域の使用や容量を制限するのはQuotaで設定する。
0058NAME IS NULL 2008/11/07(金) 03:40:58ID:???
>>49

Format時のAllocation Unit Sizeで変更出来るんじゃね?
0059NAME IS NULL2008/11/07(金) 13:27:42ID:???
>>56
Solarisx86/x64版はまだなんだなぁ・・・。
0060NAME IS NULL2008/11/10(月) 20:12:40ID:1PkOr8o/
これまでWindows版Oracleつかってきたんだけど
ウチの使い方だと、どうも2,3週間で落ちる
で、Linuxにしたらいんじゃね? ってことで試験運用することになったんだけど

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

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

おまえらはどうしてますか?
0061NAME IS NULL 2008/11/11(火) 02:51:32ID:???
>>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と同じ制限がある。
0062NAME IS NULL2008/11/11(火) 13:05:28ID:???
>ディスクへのパスが複数ある場合、ASMだと認識出来ない。
致命的欠陥すぎるw
0063NAME IS NULL2008/11/11(火) 22:52:54ID:???
同一ディスクにパスが複数あっても、冗長化ドライバとか使わないとパス障害で切り替わらないから、実害はないんだけどな。
てか、ファイルシステム自体にパス冗長化機能を持ってるやつってあんの?
0064NAME IS NULL2008/11/11(火) 23:10:52ID:???
>>62

そんな致命的でも無いよ。
書いた様に、複数パスがある場合には、冗長化されたRaw Device
作ってしまえばいいだけ。
そいつをudevで起動時に認識させさえすれば、特に意識する必要は
無い。
0065NAME IS NULL2008/11/12(水) 01:45:35ID:ee+0Tgqq
ASMっていうの使うと、体感できるほどはやい?
10%とかそんなレベルなら、ファイルシステムの方がいいきがするなぁ
0066NAME IS NULL 2008/11/12(水) 03:32:45ID:???
RAWには若干劣るが、ファイルシステムよりかは早いというのが実感かな。
O/Sにもよるが、ファイルシステムとRAW Deviceも最大で30%しか違わ
なかったりとかするしね。
私見だが、ASMにするメリットはRAW Deviceを使うよりかは、管理が楽で
そこそこパフォーマンス向上も望めるという点かな。
0067NAME IS NULL2008/11/12(水) 07:23:51ID:1ijqF5aF
SERACなら要ASM
0068NAME IS NULL2008/11/12(水) 11:49:20ID:???
LinuxだったらOCFSもあるから、別にASM必須って訳でもないかな。
今でこそ大分落ち着いたけど、最初の頃はバグだらけで結構
データ吹っ飛んだ例が後を絶たなかったし。
ようやっと実用に耐えられるレベルになってきたって感じじゃない?
RACの場合はそれこそRaw Deviceの方が歴史が長いしね。
0069NAME IS NULL2008/11/12(水) 13:00:53ID:???
ASMって基本的にWindowsのためのものだな。
LVMやVxVM使ってるなら、わざわざそれらの管理外に別のボリュームマネージャを使いたいとは思わんし。
0070NAME IS NULL2008/11/12(水) 19:22:34ID:1ijqF5aF
いや、だから安価なSERACの場合はASMのみしかサポートされないんだって。
ocfsとかLinuxだから使わないとかいう選択肢はない。
0071NAME IS NULL 2008/11/13(木) 03:14:23ID:???
>>69

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

窓RACだったらASMよりかはOCFS使った方が何かと楽そうな気が
するよ。
0072NAME IS NULL2008/11/16(日) 15:44:17ID:???
【底値買い】 飛びついちゃいけない「注意喚起銘柄」25社 にわか投資家は参照してもらいたい
http://gimpo.2ch.net/test/read.cgi/wildplus/1226794148/
0073NAME IS NULL2008/11/16(日) 16:05:29ID:???
>>72

信用売り残が積み上がっているからでしょ。
0074NAME IS NULL2008/11/18(火) 15:05:33ID:???
>>60
>>ウチの使い方だと、どうも2,3週間で落ちる
2-3wで落ちる使い方が気になります、詳しく
0075NAME IS NULL2008/11/18(火) 23:38:08ID:zZ+Wlhav
ちょいと質問させてくれ

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

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

どうしたらいいんだ。

0076NAME IS NULL2008/11/19(水) 00:10:59ID:???
>>75

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

正直、手詰まりな中で来週本番稼動だぜ!
死ぬしかないか!
0078NAME IS NULL2008/11/19(水) 03:19:53ID:???
adrciのデフォルトエディタなんだけど、
Windows版11gでも問答無用でviってどういうことなの・・・
0079NAME IS NULL 2008/11/19(水) 05:55:05ID:???
>>75

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

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:235814350980
0080NAME IS NULL 2008/11/19(水) 05:56:51ID:???
>>77

パッケージ作ってUTL_FILEで出力。
特定のカラムの置換処理はViewで対応する。
0081NAME IS NULL2008/11/19(水) 06:54:13ID:AvIXrbBK
バックアップ/リストア/リカバリを勉強しているんですが、
各コマンドを打つ時の状態が色々あって混乱しています。
DBの状態(MOUNT/OPEN)・データファイル状態(ONLINE・OFFLINE)
をどのように使い分けるのかが良くわかりません。
何とか理解したいのですが…
0082NAME IS NULL 2008/11/19(水) 07:02:36ID:???
>>81

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

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

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

Nomount状態でリカバリを試みる状況
- コントロールファイルがふっ飛んで再作成しないとならない場合
0083NAME IS NULL2008/11/19(水) 21:05:47ID:q2BaRybn
>>81
バックアップリカバリを学ぶ前にオラクルの基本動作を学ぶべし。
そうすれば自ずと状態ごとにリカバリできるものの判断ができるようになる。
0084NAME IS NULL2008/11/19(水) 21:59:06ID:???
>>77
カラム置換が良く分からないけど。SQL*Plus で
set markup html on ←もしかしたら違うかも
set pagesize 0
set trims on
spool hoge.html
select ...
spool off
で、hoge.html を Excel で編集→CSV出力
なんてのはダメ?
一度画面出力される分だけ、レコード数的に時間は掛かりそうだけど。
0085NAME IS NULL2008/11/19(水) 22:00:39ID:???
(あっ、Excelって数万レコードしか使えないんだっけ…)
0086NAME IS NULL2008/11/19(水) 23:01:12ID:???
>>85

Excel2007 で改善されてるよ。
それでも100万行くらいだけど。
0087NAME IS NULL2008/11/22(土) 15:22:30ID:9xzmOyv+
RACを利用したいんだが、10gR2と11gのどちらが安定しているのか悩ましい。
10gR2ではバグに悩まされたので。
0088NAME IS NULL2008/11/22(土) 15:34:53ID:???
>>87

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

88>>
CROWNってw
0090NAME IS NULL2008/11/22(土) 18:46:47ID:???
>>87
使うプラットフォームによるかな。
Linuxなら、新しいOracleの方が、インストールの手間は少なくて済む。
0091NAME IS NULL2008/11/22(土) 20:19:29ID:???
>>87
あなたにノウハウがある分10gR2でいいんじゃないの?
プロジェクト終わるまでにサポート切れるかも知れないけど。
0092882008/11/22(土) 21:02:25ID:???
>>89

何だお前。

当たり前のことしか言えないくせに。何の情報もないぞ。
0093NAME IS NULL2008/11/22(土) 21:19:37ID:p5sHRkLn
>>92
当たり前のことをわかっていないSEの多いこの世の中。
当たり前のことをわかっていることも大事なことの一つ。
0094882008/11/22(土) 22:17:21ID:???
だからと言って俺をコケにする理由にはならないな。
0095NAME IS NULL2008/11/22(土) 22:35:55ID:???
そのレスが理由に今なった
0096NAME IS NULL2008/11/23(日) 00:09:38ID:???
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
0097NAME IS NULL2008/11/23(日) 00:41:34ID:???
ClusterwareってなんかASMみたくほんのちょっとでもメリットあるのか??
0098NAME IS NULL2008/11/23(日) 00:46:50ID:81DIcuAu
>>96
俺は10203で大障害になるケースも何件か見てるけどな。
逆に10201から上げたのが起因で障害が起きたこともあったし。
oprocdとか不振な動きをすることが多い気がする。

>>97
メリットもなにも、10g以降必須ですから。
0099NAME IS NULL2008/11/23(日) 00:49:40ID:???
>>96

そのサポートは無期限とは言わない。
0100NAME IS NULL2008/11/23(日) 10:18:24ID:ONIAIzDs
沖縄に外国人3000万人受け入れ計画
http://life.bbs.thebbs.jp/1227401075/

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

0101NAME IS NULL2008/11/23(日) 11:33:34ID:???
ポート番号が5500から1158に変更された理由を教えろ
0102NAME IS NULL2008/11/23(日) 11:39:29ID:???
>>87

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

もしくはベンダー側のクラスターウェアと同居させて、スプリット
ブレイン時のノード選定はそっちに任せるというのも手。
0103NAME IS NULL2008/11/23(日) 11:54:13ID:???
>>98
あれ?ClusterwareってRACと関係あるの?
0104NAME IS NULL2008/11/23(日) 14:30:19ID:???
>>96
無期限のサポートだと、
不具合が出ても直してもらえないんです!><
0105NAME IS NULL2008/11/23(日) 15:09:21ID:???
Personal Edition 5万ってマジですか?
一度買ってしまえば、永遠に家のPCで使いたい放題ってことですか?
0106NAME IS NULL2008/11/23(日) 15:19:35ID:???
XEよりもいいのかしらん
0107NAME IS NULL2008/11/23(日) 15:28:37ID:???
バックアップリカバリについてご質問です。
表領域およびデータファイル破損は完全リカバリで対応可能だが、
表領域の削除は、仮にデーターファイルがあっても不完全リカバリする必要がある、
で合ってますでしょうか?
0108NAME IS NULL2008/11/23(日) 23:16:53ID:81DIcuAu
>>103
9iRACまではベンダ製ClusterwareありきでRAC(OPS)は動作していたが、10g以降のRACを使用するにはOracle Clusterwareが必要。

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

むしろ10g以降はベンダー製のクラスターウェアは必須では無くなった。
0111NAME IS NULL2008/11/24(月) 11:22:28ID:???
>>109

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

もしくはO/S上のデータファイルを有効利用したい時には、
トランスポータブル表領域を使うだな。
0113NAME IS NULL2008/11/25(火) 07:43:57ID:???
>>111,112
ありがとうございます。
ユーザーを削除した場合はフラッシュバックデータベースでいいみたいですが、
これは制御ファイルがユーザー情報を持っていないからと考えていいのでしょうか?
0114NAME IS NULL2008/11/26(水) 01:33:00ID:???
OTNでマニュアルをダウンロードしたいのですがダウンロードできません
例えば ttp://www.oracle.com/technology/global/jp/documentation/products/oracle10g/102/index.html から
Windows共通のドキュメントをダウンロードしようとしても IEでエラーとなってしまいます
対象のページが古いのでしょうか?

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

普通に落とせるけど?
ちなみにブラウザーは火狐ね。
0116NAME IS NULL 2008/11/26(水) 04:32:56ID:???
>>113

フラッシュバックデータベースは特殊なフラッシュバックログを
当てて過去の特定の時点まで戻す機能。
そして「表領域削除されている場合には使用出来ない」という
制限がある。
つまりDMLには対応していないって事だろ。
0117NAME IS NULL 2008/11/26(水) 04:34:54ID:???
>>116

DMLにしか対応していないの間違い。
0118NAME IS NULL2008/11/27(木) 06:45:33ID:???
>>115
ありがとうございます
火狐入れて試したらダウンロードできました。
0119NAME IS NULL2008/11/28(金) 01:36:14ID:???
最近だと総データ量100GB以下のDBって小規模扱いなの?
0120NAME IS NULL2008/11/28(金) 02:32:20ID:t30Az4UP
すんごい基本的な質問

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

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

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

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

それって、設定ミス? OSの問題?
0121NAME IS NULL 2008/11/28(金) 08:41:41ID:???
>>120

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

小規模だな。
1TB超えないと大規模とかって言えないよ。
0123NAME IS NULL2008/11/29(土) 00:00:00ID:???
億単位のテーブルがごろごろしてそうだな…(´д`;)
0124ma2008/11/29(土) 01:09:50ID:erpkj/yK
auditのログを完全に出力しない方法ってありますか?
初期化パラでその辺の設定は無効にしてあるのですが、
インスタンス停止起動時などはどうしても出力されてしまいます。
バージョンは10gR2です。
0125NAME IS NULL2008/11/29(土) 02:13:32ID:???
SYSDBA権限での接続は必ず出力されるんじゃなかったっけ?
0126ma2008/11/29(土) 02:22:20ID:erpkj/yK
そうみたいですね、必須監査でsysdbaの接続、インスタンスの起動停止は
必ず出てしまうみたいなのですが、それを止める方法が知りたいのです。
0127NAME IS NULL 2008/11/29(土) 05:30:40ID:???
U.S. Oracleの正式回答によると「Expected behavior.」
つまり「仕様」だそうだ。
諦めろ。
0128NAME IS NULL2008/12/04(木) 06:11:06ID:???
oracle 10gでLISTENERとLISTER0という2つのリスナーを起動しました。
ところが以下のコマンドを打つと、以下のようになります。

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

ちゃんとLISTENERもLISTENER0も起動しているのですが、何故でしょうか?
0129NAME IS NULL2008/12/04(木) 09:11:50ID:???
今どのリスナーを操作しようとしているかが出てるだけだろ
0130NAME IS NULL 2008/12/05(金) 02:06:34ID:???
>>128

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

lsnrctl status LISTENER
lsnrctl status LISTENER0

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

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

ありがとうございます。

あと、ためしにDBサーバー上でoracle connection manager起動しようとしたんですが、
「cman.oraが見つからない…」というエラーが出ました。
ちゃんと、$ORACLE_HOME/network/admin配下に置いたのですが。
DBサーバーと同じサーバー上だから駄目ってことはないですよね?
0132NAME IS NULL2008/12/08(月) 14:29:31ID:+eRptruM
質問があります。
Oracle10gに限らないと思うのですが、SELECTの質問です。

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

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

よろしくお願いします。
0133NAME IS NULL 2008/12/08(月) 22:49:59ID:???
>>132

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

http://www.ne.jp/asahi/hishidama/home/tech/soft/oracle/csvout.html
0134NAME IS NULL2008/12/09(火) 23:59:19ID:???
Oracle10g(10.2.0.3)です。
外部ストレージに、/ORAとして、DB領域を取っています。
内部ストレージに、/home等の領域があります。

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

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

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

これ、何か一発でポンと直す方法ありませんか?
0135NAME IS NULL 2008/12/10(水) 00:15:17ID:???
>>134

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

バイナリが突然見えなくなったみたいだから、細かいゾンビプロセスやらセマフォやら
$ORACLE_HOME/dbs/hc_<SID>.datとか残っちまってんじゃないの?
取り合えずゾンビプロセス全部killして、セマフォを綺麗にして、さらにDBをshutdown abort
してから起動してみたら?
例えインスタンスが起動していなくても、shutdown abortコマンド$ORACLE_HOME/dbs/hc_<SID>.datの
状態とか変わるし?
0136NAME IS NULL2008/12/10(水) 23:00:07ID:yOj3MU8T
CPU使用率がずっと100%なんですけど、
何が原因なんでしょうか
再起動直後は安定しますがすぐ100%になります。

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

0138NAME IS NULL2008/12/10(水) 23:19:27ID: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] [] []

です。
0139NAME IS NULL 2008/12/10(水) 23:37:15ID:???
>>138

OEM関係じゃね?
OEM入っている?
0140NAME IS NULL2008/12/10(水) 23:44:48ID:???
>>139

入ってます
0141NAME IS NULL2008/12/10(水) 23:46:16ID:???
割り込んですまんが、サポートに聞けば?
0142NAME IS NULL2008/12/10(水) 23:59:04ID:???
サポートされていないディストリで動かしてるんだから
自己解決するしかないよ。残念!

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

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

Oracle 総合 Session6
http://pc11.2ch.net/test/read.cgi/db/1162215948/l50
0145NAME IS NULL 2008/12/11(木) 03:18:55ID:???
取り合えず聞くだけ聞いて、そのままというのではなく、問題が直ったのなら、
何らかのフィードバック書いてくれよ。
0146NAME IS NULL2008/12/11(木) 08:21:38ID:???
>>143

要求されている Debian 3.1 と 4.0 では違うと思うが。
0147NAME IS NULL2008/12/11(木) 23:50:59ID:???
>>145
放置してたら、マシンが唸って
その後安定したので、解決法はひたすら待つことかもしれません。
0148NAME IS NULL2008/12/12(金) 03:00:10ID:???
レコード長500B、件数10万件のテーブル(500B*0.1M = 50MB) が最大の表
になるインスタンスの場合、TEMP表は 50MB ぐらいでいいんでしょうか。
一番大きいテーブルをソートするのに使う場合を想定ってことで。

でも、ソートするときOracleはデータ全部ソート対象にする?Raw IDのみの
並べ替えとかではないんでしょうか・・・
0149NAME IS NULL 2008/12/12(金) 03:29:10ID:???
>>148

流れるSQLは全件検索ばかりなんですか?
普通はまず絞り込んでから、Sortしませんか?
それと流れるSQLは一個だけなんですか?
他にもSort処理は走らないんですか?
01501482008/12/12(金) 04:04:53ID:???
>>149
たしかに、同時に使われる可能性もありますね(;´Д`A
ただ、ソートが絞り込まれた後にかかるかはSQLが今の時点では
わからないため不明です。

RowIDのソートだけなら領域ほとんど使わないと期待してる
んですが、データごとソートしてるんですかね。
0151NAME IS NULL2008/12/13(土) 03:23:17ID:???
ソートもブロック単位関係するよな?
0152NAME IS NULL2008/12/13(土) 03:42:47ID:???
ROWIDのソート?
普通にインデックス作ればいいと思うのだが。
0153NAME IS NULL 2008/12/13(土) 05:43:21ID:???
>>150

メモリ沢山積んで、pga_aggregate_targetを多めに取って、あとは
細かくチューニングしていけば?
0154NAME IS NULL2008/12/13(土) 18:30:05ID:???
どうしてOracleはLIMITを実装しないんだろうね
意地になってるのかな
0155NAME IS NULL2008/12/14(日) 17:19:34ID:hLN0PBn0
Windows Server 2003、Oracle10gですが、
表領域のサイズはどのように決定していますか?
見積もり方法などありましたら、教えてください。
0156NAME IS NULL2008/12/14(日) 17:58:48ID:???
>>155
積み上げ
0157NAME IS NULL2008/12/14(日) 18:13:36ID:???
こんなんとか。

http://otn.oracle.co.jp/document/estimate/
0158NAME IS NULL2008/12/14(日) 19:40:35ID:???
Net Services 管理者ガイド 11g リリース1のPDF版っていつ出るの?
01591552008/12/14(日) 21:39:48ID:hLN0PBn0
>>156,157さん
ご返信ありがとうございます。
otnの見積もり、すごく参考になります。
0160NAME IS NULL2008/12/15(月) 15:55:49ID:???
oracle9以降を利用してLinuxクロス環境のクライアントを構築したいと考えています。
Instant Clientのソースコード一式はフリーで入手可能でしょうか?
0161NAME IS NULL2008/12/15(月) 15:58:26ID:???
ソースコードが要る理由は?
ライブラリとヘッダファイルだけあれば十分じゃないの?
0162NAME IS NULL2008/12/15(月) 16:03:12ID:???
>>161
CPUがIntel x86系ではなく組込用ボードのCPUなので、ライブラリ等はすべて
クロスコンパイルしなければ使えません。
普通にDLしてRPMでインストール出来れば楽なんですが。
それでソースが必要なので。
0163NAME IS NULL2008/12/15(月) 16:11:37ID: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行追加してあとでクロス集計を掛ける際に使いたいんだが
どうやったら出来るかな?
0164NAME IS NULL2008/12/15(月) 16:23:41ID:???
>>162

なるほど。でも一般には入手不能ですよ。
0165NAME IS NULL2008/12/15(月) 18:36:51ID:???
>>164
ググっていたらオープンソースのOracle互換 EnterpriseDBという製品を見つけました。
PostgreSQLベースですが、Oracleへのインターフェースを備えているようなので
これで試してみます。
ありがとう
0166NAME IS NULL2008/12/15(月) 20:37:10ID:???
>>163
どこにどんな 1 行を追加したいのかが分からないと話が始まらない
0167NAME IS NULL2008/12/15(月) 22:43:10ID:???
rank() で行けるのでは?
あと、さりげなくもすごいデータ内容だと思いました
01681632008/12/16(火) 09:00:16ID:???
まあある意味業務で用いるものだからね
前任者が退職してクエリとか引き継がれずただ業務だけが押し付けられたもんでね

>>166
単純に数値型でいいんで履歴の若い順に1,2,3…って数字つけたいだけなんだ
場所は頭でもいいし最後でもいいんでとりあえずナンバリングするだけ
そうすればあとでクロス集計クエリ作るときにそいつを列にするだけでいいんで
…テーブルに出してからなんかしているんかなぁ
0169NAME IS NULL2008/12/16(火) 11:24:53ID:???
パーティションバイなんだぜ
0170NAME IS NULL2008/12/16(火) 21:14:16ID:???
>>168
行じゃなくて列な。
row_numberでググれ
0171NAME IS NULL2008/12/16(火) 21:50:49ID:???
なんだ、列なのか
ならできるだろうに
0172NAME IS NULL2008/12/17(水) 19:52:19ID:???
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つ同じの書かないと駄目なんでしょうか?
0173NAME IS NULL2008/12/17(水) 22:05:26ID:???
副問合せを使わないのであればそうだろう
0174NAME IS NULL2008/12/18(木) 00:30:04ID:???
WebLogicとOC4Jって今度どういう関係になっていくんだろ?
今、OC4Jの乗っかってるOracleApplicationServer使ってるんだけど、
これはそのままOracle WebLogicServerに載せ替えられるんだよね?
JavaEEみたいな環境依存バリバリのプラットフォームを移行するのも
甚だ怖くはあるけど。。。
0175NAME IS NULL2008/12/19(金) 18:06:44ID:???
携帯から失礼します。

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を使用しています。
0176NAME IS NULL2008/12/19(金) 18:40:29ID:???
未検証。
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);
0177NAME IS NULL2008/12/19(金) 22:19:26ID:???
OracleMasterのBronzeとSilverとでは何が違うのでしょうか
Silverの範囲にBronzeの範囲は含まれるのでしょうか
お願いします
0178NAME IS NULL2008/12/19(金) 22:24:03ID:???
>>177

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

http://www.oracle.com/global/jp/education/certification/examlist.html
0179NAME IS NULL2008/12/19(金) 22:25:27ID:???
>>178
ありがとうございますm(_ _)m
0180NAME IS NULL2008/12/22(月) 03:21:40ID:???
10gXEをwinServer2k3に入れたんですが、Solaris10用のクライアントって無い
んでしょうか?winとlinuxだけ?

web鯖とかSolarisで動いてるんで、なんとかSolarisから叩きたいんですが。
0181NAME IS NULL2008/12/22(月) 07:42:40ID:???
あるじゃん?

http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10202solx86soft.html
0182NAME IS NULL2008/12/22(月) 11:23:28ID:???
それって評価版ちゃうの?
0183NAME IS NULL2008/12/22(月) 11:44:42ID:???
クライアントならあるでしょ。
http://www.oracle.com/technology/global/jp/tech/oci/instantclient/instantclient.html
0184NAME IS NULL2008/12/22(月) 23:23:49ID:p8qevsH7
Windows Server 2003、Oracle 10g EE です。
RMANで、バックアップファイル名を、FB_20081222.BKPなどのように
したいのですが、
どのようなコマンドを打てばよいでしょうか?
どなたかご教授いただければ幸いです。
0185NAME IS NULL2008/12/22(月) 23:38:48ID:???
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'FB_%Y%M%D.BKP';
とかかな。
0186NAME IS NULL2008/12/23(火) 00:01:41ID:BBlYK1lJ
>>185
ありがとうございます。
日付がファイル名に入りました。ほっとしました。
0187NAME IS NULL2008/12/23(火) 10:54:18ID:???
10.2.0.4をあるシステムで使っていて
要らないテーブルを削除する役割を承った

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

やり方を知ってる人がいたら教えて欲しいです。
作成したのは先人す
0188NAME IS NULL2008/12/23(火) 11:25:57ID:???
EMから消すというのは。
0189NAME IS NULL2008/12/23(火) 11:45:29ID:???
ダブルクォーテーションで括ればどうよ

というか実行環境書こうぜ?SQL*Plusでいいのか?
0190NAME IS NULL2008/12/23(火) 12:19:32ID:???
テーブル名にスペースって付けられるのか。
aaaって名前のテーブルと
aaa bbbって名前のテーブルがあったとき
select * from aaa bbbってやったらどうなるんだろう。
0191NAME IS NULL2008/12/23(火) 13:34:39ID:???
>>190
ダブルクォーテーションでくくれば、いけんじゃね?

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

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

試してないから、嘘っぱちかもだけど...
0192NAME IS NULL2008/12/23(火) 15:21:34ID:???
XEで試したらそれで行けたよ
この業界では基本テクだろうけどね

念のため言っておくと character sensitive だ
01931922008/12/23(火) 15:24:14ID:???
>"aaa bbb"
自分がやったのはこれだけね
他は知らん
01941922008/12/23(火) 15:25:13ID:???
自分が試したのは
>"aaa bbb"
これだけね
他は知らん
01951902008/12/23(火) 15:30:53ID:???
やー、サンクス。
ていうか別に>>190みたいな状況の解決方法を知りたかったわけじゃなくて…
まあいいか。
0196NAME IS NULL2008/12/23(火) 15:59:26ID:???
187で質問した者だが

数々の解答感謝

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

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


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

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

後輩ツエーと思ったが

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

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

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

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


みんな、貴重な意見ありがとな
この寒い中、暖房効き過ぎな部屋にいる俺の骨身に染みたわ
0197NAME IS NULL2008/12/25(木) 00:20:08ID:???
「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がおかしいわけではなく、
あるテーブルを使うとこのエラーが起きてしまいます。

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

どうかご教授お願いします。 」
0198NAME IS NULL2008/12/25(木) 13:43:23ID:a4IRyWzY
Windows Vista Enterprise 64bit sp1 に
Oracle 10g Client x64 を
インストールしたいのですが
開始してすぐに

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

のように異常終了します。
どうしてでしょうか?
0199NAME IS NULL2008/12/25(木) 21:12:38ID:???
>>197
全角スペース使ってない?
0200NAME IS NULL2008/12/25(木) 23:11:13ID:???
>>197
どんなSQLを発行しているかによる。

>>198
クライアントつってもイロイロあるわけで。
何を開始したのかも分らないわけで。
02011972008/12/25(木) 23:47:37ID:lOTqMAhd
>>199
全角スペースつかってないはず・・・
一応確認する

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


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

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

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

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

うーん・・・
0204NAME IS NULL2008/12/26(金) 01:00:22ID:???
エラーになるテーブルの時のsql文の文字列はどうなってるの。
なんか空になってるとか
0205NAME IS NULL2008/12/27(土) 09:56:43ID:???
エラーになるテーブルが特定できているなら、
ひとまず、そのテーブルの場合だけ、置換処理を経由せずに
ハードコーディングした処理にするのはどう?

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

これで通るなら、置換処理に何らかのミスがあるのでは。
0206NAME IS NULL2008/12/30(火) 16:17:39ID:OXA5FuFu
VMware ESXiで、RACを構成して動かしたってう強者いるかな?
0207NAME IS NULL2008/12/30(火) 20:21:26ID:???
それはただの変人のすること。
意味のないことをしないのが強者。
0208NAME IS NULL 2008/12/31(水) 04:49:56ID:???
>>206

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

>>208
そういえば、オラクルの「VMWareお手軽RAC構築」って
見たような気がする。興味あるけど難しそうだ。
VMWareとRAC両方の知識が要るからね。
0210NAME IS NULL2009/01/02(金) 01:47:29ID:???
デットロックに関して質問です。

UPDATE時にWHERE句を指定せずに複数件一括で更新した時に
別のトランザクションでWHERE句を指定して一件一件更新していった場合にデットロックが
かかる可能性はありますか?
一括で更新した場合は更新対象のレコードは同時にロックを取得しているのでしょうか?
0211NAME IS NULL2009/01/02(金) 02:08:18ID:???
>デットロック
>デットロック
>デットロック
>デットロック
0212NAME IS NULL2009/01/02(金) 05:05:52ID:???
>>210

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


0213NAME IS NULL2009/01/02(金) 05:07:20ID:???
>>209

VMWareの知識は大していらないよ。
ちょっと知識がいるとしたら共有ディスクを作成する所ぐらい。
それもググレば直ぐに出てくるしね。
後は普通のO/Sインストール作業とそんなに変わらない。
0214NAME IS NULL2009/01/02(金) 17:04:52ID:???
>ちょっと知識がいるとしたら共有ディスクを作成する所ぐらい。

VMware ESXiでは、disk.locking = "false"が無視されてしまうから
同時に複数のノードを動かせないんだよね。
どうしたら解決できるか知ってる人いないかな?
検索しても見つけられなかった。
0215NAME IS NULL2009/01/03(土) 01:51:26ID:???
>>214

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


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

http://www.oracle.com/technology/pub/articles/hunter_rac10gr2_iscsi.html
0217NAME IS NULL2009/01/03(土) 02:38:13ID:???
読まずに適当なこというけど、iSCSIだとクラスタ対応FSがいるよね?
その場合、iSCSI+CFSとNFSで比較するとどっちがいいんだろうね。
0218NAME IS NULL2009/01/03(土) 05:17:50ID:???
>>217

RACなんだから、別にCFSだけには限定されないぞ?
実際に>>216だって、iSCSI使って、ASMで構成している例だし?
勿論Linuxだったら、iSCSI+OCFSという選択肢もありだろう。
問題になっているのは、どうやって共有デバイスをRACをインストールする
ノードから見せるかだろ?
0219NAME IS NULL2009/01/03(土) 11:27:23ID:???
NFSは簡単だけど、キャッシュをオフにしないと駄目だから、遅くて使えないよ。

おすすめは、iSCSI+OCFS2またはiSCSI+ASMだね。
0220NAME IS NULL2009/01/03(土) 12:49:34ID:???
ああそうか、rawとかASMっていう手があったな。
普通なら扱いにくいrawも、iSCSIならtarget側でのバックアップが楽だからいいね。
0221NAME IS NULL2009/01/03(土) 18:44:30ID:Sh+0ao+6
エンタープライズでも
RACの共有ディスクにiSCSIを使ってるとこある?
おすすめのiSCSI製品あったら教えて
0222NAME IS NULL 2009/01/04(日) 14:25:52ID:???
エンタープライズ系だと商用が普通だかららなぁ。
ウチも鯖はLinuxでもストレージはEMCだよ。
0223NAME IS NULL2009/01/04(日) 18:00:45ID: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';

0224NAME IS NULL2009/01/04(日) 18:48:44ID:???
↑最後のやつがどうしてもドクオにしか見えんw
0225NAME IS NULL2009/01/04(日) 19:29:08ID:???
>>224

確かにそう見えるねw
0226NAME IS NULL2009/01/04(日) 19:36:31ID:???
これはデッドロックにはならずに、単にどっちかのトランザクションが
failしておしまいじゃね?
0227NAME IS NULL2009/01/04(日) 19:56:47ID:???
'A'
02282102009/01/05(月) 01:35:11ID:???
>>223
ありがとうございます、
もうひとつ質問させてください。

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

0229NAME IS NULL2009/01/05(月) 08:07:15ID:???
>>223

それ、本当にデッドロックか?
デットロックだと、ORA-00060が発生して、5分間は両方のトランザクションが止まるんだぞ?
0230NAME IS NULL2009/01/05(月) 23:25:01ID:???
そもそもデッドロックが「片方で」起きることはないよな。
0231NAME IS NULL2009/01/06(火) 01:06:14ID:???
oracleってデットロックを感知してエラーをすぐ返すんじゃなかったけ?
0232NAME IS NULL 2009/01/06(火) 02:03:38ID:???
>>231

デフォルトで検知まで5分間を要する。
0233NAME IS NULL2009/01/06(火) 07:29:40ID:???
>>232
かかんねえよ
やってみたら一瞬で検知したぞ?
0234NAME IS NULL2009/01/06(火) 17:44:35ID:???
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指定で戻す、無理、もっと良い方法がある……等ありますでしょうか。
02352342009/01/06(火) 17:56:50ID:???
書き忘れ

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

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

同一テーブルに一括更新を2つのセッションから同時に実行して、デッドロックが
発生したという話は聞いたことがないし、自分でテストをしても発生しなかったので
大丈夫だとは思いますが、100%の自信はありません。
02382342009/01/07(水) 10:11:58ID:???
>>236
ありがとうございます。

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

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

FULL戻しした場合、どこかのテーブルにSE/EE区別やらSID等の情報を持ってたら面倒だなぁと思いまして悩んでいました。
0239NAME IS NULL2009/01/07(水) 11:06:33ID:???
>>238

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

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

ASMの場合にはRMANが使えないとかなり不便だぞ。
それこそRMANさえあれば、ASM上のデータベースファイルをファイルシステム上に
変換かけたりとかもできるしな。
02402342009/01/07(水) 14:44:37ID:???
>>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が使えるの?なんです。

再度マニュアルを確認します。
何度もすいません。
0241NAME IS NULL2009/01/07(水) 22:47:34ID:???
>>240 239 じゃないけど
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/backup.102/B19192-03/rcmdupdb.htm

理屈では可能なのは知ってるけど、利用経験は無いので時間的な制約が
あるなら Exp/Imp で。スキーマ数が少ないならスキーマ単位で移すかな。
スキーマもテーブルも少ないなら DB-Link 使うかも。
0242NAME IS NULL 2009/01/07(水) 23:23:55ID:???
>>240

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

他にRMANを使うメリットはデータベースが配置されるデバイスに影響され
ない事。
RAW=>ファイルシステム、ASM=>ファイルシステム、ASM=>ASMにも
出来るし、RAC=>シングルインスタンスなんかへも自動で出来る。
0243NAME IS NULL 2009/01/07(水) 23:42:57ID:???
>>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以降
までのアーカブログが含まれている必要がある。
0244NAME IS NULL2009/01/09(金) 20:59:42ID:Q8QuRN46
oo4oって何と読むのでしょうか?
0245NAME IS NULL2009/01/09(金) 23:43:42ID:???
>>244
ooとoの間に4つoが入ってる
0246NAME IS NULL2009/01/09(金) 23:43:51ID:???
o∀o
0247NAME IS NULL2009/01/10(土) 00:47:19ID:???
>>244
おーおーふぉーおー
0248NAME IS NULL2009/01/10(土) 01:23:52ID:???
略さず読んでる
0249NAME IS NULL2009/01/10(土) 14:21:41ID:???
o¥o
0250NAME IS NULL2009/01/11(日) 16:43:12ID:???
んー、2ちゃんねるって馬鹿にできないね。
有益な情報もたくさんある。
0251NAME IS NULL2009/01/11(日) 17:55:37ID:???
まあ犯罪がらみとかでしか報道されることは無いけどな
0252NAME IS NULL2009/01/12(月) 12:42:09ID:UYTJKBsr
SGA_TARGETとSGA_MAX_SIZEの違いってなんでしょうか?
0253NAME IS NULL2009/01/12(月) 12:44:30ID:???
>>252

オラクルは、そんなこと言ってたらキリないよ。
0254NAME IS NULL2009/01/12(月) 14:07:00ID:???
型の種類の RAW って何の略称でしょうか?
LOBは Large OBject の略称であることは検索したら分かりましたが、
RAW については説明を見つけきれませんでした。
気になって、気になって……。
0255NAME IS NULL2009/01/12(月) 15:25:51ID:???
Record Access Write
0256NAME IS NULL2009/01/12(月) 15:37:24ID:???
>>255
レスありがとうございます。
せっかく教えてもらったのに疑って申し訳ないのですが、
Google でそれを検索してもヒットがありません。

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

よければソース(公式リファレンスなど)もお教えください。
本当にワガママですみません。
0257NAME IS NULL2009/01/12(月) 16:15:25ID:???
>>256

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

02582562009/01/12(月) 16:22:19ID:???
>>257
レスありがとうございます。
RAW は Oracle 独自の型名ではなく、
デジカメで撮影した画像の未加工データの「RAWデータ」と
同じ意味合いなのですね。
すっきりしました。ありがとうございます。
0259NAME IS NULL2009/01/12(月) 18:28:15ID:???
ソースをくれとか言ってる割に、「と思われる」という回答は信用するのね。

確かにその回答は正しいんだけど、そういう姿勢では底が知れるな。
0260NAME IS NULL2009/01/13(火) 01:29:12ID:???
>>252
実用的な使い方かは別として。

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

という事が可能。
SGA_MAX_SIZE未設定(=SGA_TARGETと同値)だと、動的に
減らすことは可能でも増やすことができない。
0261NAME IS NULL 2009/01/13(火) 07:31:57ID:???
>>260

補足するとしたら、SGA_MAX_SIZEを指定した場合、その値まで
メモリをリザーブしてしまう。
つまりO/S側から見たらSGA_MAX_SIZEで指定したメモリサイズ分
インスタンス起動時に取られているから、はっきり言って実用的
ではない。
0262NAME IS NULL2009/01/13(火) 10:53:11ID:???
>>261
特に異論はないんだけど、実際に動きを見ていると
IPCの確保は SGA_MAX_SIZE だけで、メモリの確保
は SGA_TARGET までに見えるんだよね。

OSの仕組みとか詳しくないんで、勝手な想像で、
予約だけして未確保の領域を作れると思ってる。
0263NAME IS NULL2009/01/13(火) 16:00:48ID:???
歴史を見るとわかり易い、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にその最大値を設定。更に、・・
0264NAME IS NULL2009/01/17(土) 18:30:02ID:???
1ヵ月分の差分バックアップからの戻しで死ねました....
戻すのに5日かかったよ ママン
0265NAME IS NULL2009/01/17(土) 20:28:18ID:???
>>264
乙
0266NAME IS NULL2009/01/18(日) 17:20:13ID:D5SMNAz7
現在Oracle9iでWebシステムをクライアントに提供しているんだけど、
レスポンスが遅い!とクレームが来ます。
SIerに問い合わせても10gにすれば解決する。と言うのですが、
Oracle9iを10gにバージョンアップするだけで、レスポンスは
向上するものなのでしょうか?
どなたかご教授いただければ幸いです。
0267NAME IS NULL2009/01/18(日) 17:52:49ID:???
しない。
おそらく、そのWebシステムの作りが悪いから、DB変えようがNW変えようがHW変えようが大してパフォーマンスは変わらない。
0268NAME IS NULL2009/01/18(日) 17:59:36ID:???
どういう理屈でどの程度解決するのかSIに聞けよ
そもそも何のレスポンスが悪いのか書いてない時点で答え貰う気がないように見える
0269NAME IS NULL2009/01/18(日) 19:19:06ID:D5SMNAz7
>>268
すみません。
Oracleを再起動すると、データ更新が数秒で行えますが、
数日たつと、データ更新に10分くらいかかります。

システムを開発したベンダーは、10gにすれば解決すると言うのです。
32bit Windows Server 2003で、SGAは2GBしか使用できません。
boot.iniファイルをいじくって、3GBまで増やすと効果ありますでしょうか?
0270NAME IS NULL2009/01/18(日) 20:00:01ID:???
commit してないトランザクションが残ってるとか?
0271NAME IS NULL2009/01/18(日) 21:05:14ID:???
>>269
とりあえずなんで解決すると言い切ってるのかベンダに聞いとけ。
メモリリークとかのbugなのかも知れんし。
根拠なかったらキレてやっていい。
0272sage2009/01/18(日) 22:31:58ID:s/0DH11a
根拠ないに一票。
0273NAME IS NULL2009/01/18(日) 22:48:17ID:???
コストベースやルールベースの話されちゃう気がするなぁ

もしくは>>269みたいな話がでてるってことはプロセスがメモリ使い切ったって説明でもされたのかもしれないが
それだったら10gで解決するっていう根拠が推測できない
しかも、メモリの使用状況を確認するのが先決だろう
SI側も「プロセス空間2G使い切りました。だから/3GBオプション使いましょう」
って回答出しても「3Gなら解決すんの?根拠は?」って返されるのがオチだから
うやむやにしてるんじゃないの
メモリの事なら事象が再現しないと本当の事はわからないだろうなぁ
っていうか再現しても運がよくないとわからんだろう
0274NAME IS NULL2009/01/18(日) 23:06:18ID:???
いいなぁ。そういうの。いいなぁ。SIer苛めるカッコウのネタじゃん。
0275NAME IS NULL2009/01/19(月) 00:17:28ID:???
オチとしては調査するのに必要な情報の取り方をまとめて事象再現待ちだろうな
3Gオプション入れるには根拠弱いだろ
3Gにした事で他アプリに影響でないか検証しなきゃならんし実質不可能
0276266,2692009/01/19(月) 20:45:52ID:GgIO1862
9iを10gにすることのメリットってあるのでしょうか?
特にパフォーマンス面でありますでしょうか?
0277NAME IS NULL2009/01/20(火) 00:26:40ID:???
今ならせっかくだから11gに移行すれば良いのに。
RBO->CBOに変わってるし、色々便利なところも増えてるから、
特に理由がなければ移行した方が良いよ。
0278NAME IS NULL2009/01/20(火) 03:04:27ID:???
>>276

RAC関係の機能は強化されているが、OLTP系の個々のパフォーマンスに
関してはそんなに目を見張る強化とかは無いよ。
ただ10gも大分落ち着いてきているし、9iのライフサイクルを考えたら、今の
内に上げておくのもいいとは思う。
でもどうせなら>>277が言っている様に、今の内に11gに移行出来るのなら
そうしておいた方が良い。
0279NAME IS NULL2009/01/23(金) 05:07:58ID:???
12gからはRaw Deviceは非サポートだってよ。
OCRやVoting DiskもASM上かCFSに置く事になるみたい。
0280NAME IS NULL2009/01/23(金) 19:56:34ID:???
>>279
あれ?11gからOCRとか共有ファイルシステムにも作れるようになってなかったっけ?
02812802009/01/23(金) 19:58:32ID:???
>>279
ああ、すまん。ちゃんとCFSって書いてあった。
0282NAME IS NULL2009/01/25(日) 04:14:48ID:???
DDLトリガーでのDDL発行って出来ないのか
こないだDDLトリガーでDBMS_SQLつかってCREATE TABLEしてみたけどエラー発生して出来なかったけど、、、

そもそもDDLトリガーってDDLのLoggingくらいにしか使わないもの?
0283NAME IS NULL2009/01/25(日) 19:19:34ID:???
なんかOTNに登録しようとしたら

Email address contains invalid domain name.

ってメッセージがどんなメールアドレスいれてもでるんだが・・・どういうことなの
0284NAME IS NULL2009/01/26(月) 21:56:54ID:???
tnsnames.oraに入っている「INST1_HTTP」ってなんですか?
0285NAME IS NULL2009/01/28(水) 04:38:52ID:???
>>282

('A`)つ AUTONOMOUS_TRANSACTION
0286NAME IS NULL2009/01/29(木) 01:13:43ID:???
>>282

具体的にどういったトリガーを作成しようとしたんよ?
0287NAME IS NULL2009/01/30(金) 18:38:58ID:???
11g(SE/Win版)って何も考えずにそのままインストールすると
初期状態でどのくらいメモリ喰うの?
0288NAME IS NULL2009/01/30(金) 18:46:44ID:???
>>287
はじめから64bit版Windowsを考慮したほうがましなくらい
0289NAME IS NULL2009/01/31(土) 00:20:40ID:???
Windows版10gをWindows2003にデフォルトでインストールしました。
SQL*PLUSの実行結果として表示されたORAのエラーメッセージが文字化けします。
エラーメッセージを正しく表示させるにはどうすればよいでしょうか?
また、Oracleに設定する文字コードは何を設定するのが正しいでしょうか?
0290NAME IS NULL2009/01/31(土) 00:25:16ID:???
set NLS_LANG=American_America.JA16SJISとか?
11gでは高速化したっつーけど、また重くなったよな。
速い!=軽い
重い<>遅い、では無いのか。
0291NAME IS NULL2009/01/31(土) 01:12:12ID:???
>>288
('A`)
0292NAME IS NULL2009/01/31(土) 01:41:04ID:???
レスありがとうです

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

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

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



ちょっとDDLトリガーに夢をみてしまったので実際のところ
みんなDDLトリガーって何につかってるのかなと聞いてみたかったのです
0293NAME IS NULL2009/01/31(土) 15:47:52ID:???
>>290
そんなの当たり前。
Oracleが使えるリソースを目一杯使って高速化すれば、全体として重くなることもあるわな。
0294NAME IS NULL2009/02/01(日) 09:01:34ID:OWf5p2Ai
上司がノートPCに入っているOracle10gから
顧客用dmpファイルを、顧客のOracle9iにインポートしていました。
10gから9iへのデータ保障ってされてないですよね?
みなさんなら、このようなことされますか?
0295NAME IS NULL2009/02/01(日) 12:19:06ID:???
それが危険な操作であったらOracleがエラーか警告を出すはずである。
その上司が警告を無視していない限り、何かあったら悪いのはOracle。
その程度に考えてないとこの業界やってられないぞっと。
0296NAME IS NULL2009/02/01(日) 12:43:28ID:???
>>290
重くなってても速くなっていれば、まだいい。
Vistaなんか・・・。
0297NAME IS NULL2009/02/01(日) 13:45:26ID:???
>>294
10gでExport
9iでImport
するにしてもOracleClientのVerが同じなら(EXP,IMPのVer)
特に問題なく業務で使ってた

データ保障はわからないですが
0298NAME IS NULL2009/02/01(日) 20:06:42ID:???
やっぱりASMを使ってるとこ多いのかな?
個人的には、OCFSが簡単で好きなんだけど。
0299NAME IS NULL2009/02/02(月) 01:19:09ID:???
9.2.0.6でエクスポートしたdmpを9.2.0.8にインポート
しようとしたら出来なくて泣いた記憶ならある…
0300NAME IS NULL2009/02/03(火) 05:13:43ID:???
大事なデータを扱うときは最低限OiSCくらい見てからにしようぜ!
0301NAME IS NULL2009/02/05(木) 22:53:38ID:???
くだ質がないのでこちらで質問させて下さい。

クライアントについての質問です。
今まではローカルのWindowsマシンのOracle10gに対してcseで接続していました。
今度はリモートのSolaris上Oracle10gに接続することになりました。
Oracleはcseでリモートに繋ぐ設定がないので途方にくれています。
発行したSELECTの結果をグラフィカルに表示してくれる程度でいいのですが、
無料のクライアントはないでしょうか。
0302NAME IS NULL2009/02/05(木) 23:29:53ID:???
無料のは Oracle が配布している Instant Client があるよ。
0303NAME IS NULL2009/02/06(金) 00:08:29ID:???
>>301
ローカルにOracle入ってるなら tnsnames.oraで 接続情報書けば
CSEでも繋げるよ

ただ、CSEって8iくらいまでしか対応して無くて
集計関数使ったときにうまく動いてくれなかった覚えが、、、
0304NAME IS NULL2009/02/06(金) 00:36:56ID:???
Oracle謹製のSQL Developerはどうよ?
ちょっと重いけど機能は折り紙付きですよ。
他にはJava製のAqua DataStudioとか?
0305NAME IS NULL2009/02/06(金) 01:27:29ID:???
>>303
標準偏差が駄目だった希ガス
あとはだいたい動く
0306NAME IS NULL2009/02/06(金) 02:09:01ID:???
PLSQL Developerが無いと何も出来ない、何もやる気がおきない体になった。
0307NAME IS NULL2009/02/06(金) 04:03:43ID:GlPU0aHo
OS: サーバがSoralis、接続するクライアントはWindows XP
バージョン: Oracle 10g

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

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

�Aのデメリットって

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

が挙げられると思うので、ふだんは�@を使ってるんですが、
もしかしてUSER_TABLESとTABって全然用途が別なのでしょうか?
03083012009/02/07(土) 02:39:12ID:???
SQL Developerがよかったので使っていくことにします。
アドバイスありがとうございました
0309NAME IS NULL2009/02/07(土) 17:24:38ID:???
>>307
TAB は古いバージョンとの互換性のために残されている。
今は USER_TABLES (シノニム:TABS) で OK。
0310NAME IS NULL2009/02/08(日) 03:01:19ID:???
Oracleって速いけどメンテナンスすごくしにくいな。
MySQLとはえらい違いだ
0311NAME IS NULL2009/02/08(日) 09:42:10ID:???
その分高価だからな
0312NAME IS NULL2009/02/08(日) 09:51:30ID:???
Oracleは専用のDBAがつくのが当然だからな
PGや開発系SEが片手間にさわるMySQLとは
プロジェクトの中の位置づけが違うぜ
0313NAME IS NULL2009/02/08(日) 10:04:53ID:6340660i
専属DBAが必要なんでコスト的に割が合わなくなって、最近はPostgreSQLやMySQLに
シェアを食われている汎用機型巨大データベースのスレはここですか?
0314NAME IS NULL2009/02/08(日) 10:23:06ID:???
おっと、AC○Sの悪口はそこまでだ!!
0315NAME IS NULL2009/02/08(日) 10:23:17ID:???
>>310
面倒だというならわかるが、しにくいってのは?
無停止でメンテできる範囲はOracleが一番だと思うけど。
0316NAME IS NULL2009/02/08(日) 15:20:28ID:???
かなり初心者なんですが
Oracle11gのDBに、クライアントからエクセルを使い
ODBC経由で接続を考えています。

ただ、クライアント側のORACLEが9iとか古いverで
ODBCドライバー自体のversionが古く、接続できるか確証がもてません。
サーバ側の11g環境はまだまだできそうになく、検証できない状態なんですが
そもそもODBCドライバって無料?
あとどのversionがどのDBと繋げられる対応表みたいなのありますかね?
検索しても全然でてこず。
ORACLEのHPのマニュアルは糞見たいに見づらく、
何考えてあのサイト作ってるのかわからん状態なので
誰かエロイ人教えてください
0317NAME IS NULL2009/02/08(日) 20:54:10ID:???
無料。
昔は、接続の対応表とか、OSバージョンの対応表とかがあったんだけど、
リニューアルされてから見づらくなったのは確かだねw
あと、Oracleの場合は、基本的にODBCより、一緒にDLできるOLEDBかoo4oを使う方が何かと便利だよ。
0318NAME IS NULL2009/02/08(日) 21:40:21ID:???
oo4oとか今更ありえないですからっ!
0319NAME IS NULL2009/02/08(日) 21:42:32ID:???
>>315
メンテ中の計画停止すら許されないDBならOracleしか選択肢ないけどね。
ちょっとくらい止めてもいいDBだったらOracleは選びたくない
0320NAME IS NULL2009/02/08(日) 22:20:24ID:???
データ件数が億とかに届くシステムだとやっぱりオラクルだって先輩がゆってた!
0321NAME IS NULL2009/02/08(日) 22:33:23ID:PTYbMZIT
OracleはおろかDB初心者です。
今度、会社のシステム構築する中でDB部分をOracle 10gでRAC化する(外注)ことになりました。
ほとんど関わらないのですが最低限(投票ディスクやOCRの役割等)知っておきたので
お勧めのHPや本あれば教えてください。
よろしくお願いします。
0322わかってない2009/02/08(日) 23:45:14ID:???
教えてくだされ。
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しかリンクを張るようになっていないのでリブート時はぶちきれなんでしょうか。


0323NAME IS NULL2009/02/09(月) 03:00:55ID:???
>>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参照。
マニュアルの内容的にはシステムの再起動については考慮してない気がする。
0324NAME IS NULL2009/02/09(月) 15:09:50ID:???
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だとどう書けばいいのだろう
03253242009/02/09(月) 15:22:04ID:???
自決しました
0326NAME IS NULL2009/02/09(月) 15:25:31ID:???
無茶しやがって
0327NAME IS NULL2009/02/09(月) 16:02:09ID:???
先生!
ORACLE MASTER Silver Database 10gを持ってるんですが、
今度、仕事で9iを使うことになりそうです。

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

0328わかってない2009/02/09(月) 19:22:33ID:???
>>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* スクリプトを実行して、次の作業を行います。
すべてのアクティブなプロセスを停止する
ファイルシステムのマウント解除

の記述がありました。



03293212009/02/09(月) 22:16:25ID:59eeKjde
>>323
ありがとうございます。
oracleマンニュアルってwebで公開してるんですね。
とりあえず一読してみます。
0330NAME IS NULL2009/02/09(月) 22:29:48ID:???
>>327
サポート期限の問題やらもあり、9iは大分減ってきた。
しばらく主流は10gだろうな。
が、これまたサポート期限の問題で、これからの新規構築は11gが増えるだろうな。
現に俺も11g新規構築案件に携わってるし。
0331NAME IS NULL2009/02/09(月) 22:59:39ID:???
>>330
サポートは延長できるんじゃなかったか?
0332NAME IS NULL2009/02/09(月) 23:03:25ID:???
少なくとも5年はサポートして貰わないと困るから
構築+運用で2015年まではサポートが必要
0333NAME IS NULL2009/02/09(月) 23:41:06ID:???
>>331
サポート期限切れから2年までなら料金割増で受けられる。
料金割増が微妙に引っ掛かる。。
0334NAME IS NULL2009/02/09(月) 23:49:08ID:???
DellとかHPのハードウェアの保守期限が5年くらいじゃなかったっけ?
結局5年サイクルで回していくのが一番効率良いのかもな。

って、毎回更新とか保守契約料とか考えるとDB・システム構築って金かかるよなー。
0335NAME IS NULL2009/02/10(火) 09:35:32ID:???
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 が発生
します。

何か良い対処法はないものでしょうか?
定期的リブートは簡便です><。
0336NAME IS NULL2009/02/10(火) 13:51:30ID:???
>>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 ならコネクションプール使ってるか等。
無駄にプールが多いならプール数を減らすとか。

要するに、メモリ限界なので、どこが減らせるか確認して、減らせるとこ
ろを減らすしかない。
0337NAME IS NULL2009/02/10(火) 20:17:04ID:???
一時テーブルを使いたいのですが
CREATE GLOBAL TEMPORARY TABLE だと
セッションが切れてもテーブルが残ってしまいます。
セッションが切れたらテーブルにも消えてほしいのですが
どうしたらよいでしょうか。
0338NAME IS NULL2009/02/11(水) 00:30:55ID:???
>>335
さっさと64bitに移行すれば?
ハードウェアも安くなったのに、こねくり回す時間のほうが高くつく。
0339NAME IS NULL2009/02/11(水) 07:01:45ID:???
>>337

トリガーでは無理っぽいから、定期的にセッションが存在するかどうかを
モニタリングして、セッションが無くなったらdropするプロシージャでも
呼び出すとかじゃね?
0340NAME IS NULL2009/02/11(水) 23:57:25ID:???
インデックスのクラスタリングって微妙だ、、、どんな時につかうのだ
レコード数が多い時か?
0341NAME IS NULL2009/02/12(木) 09:26:59ID:???
こんにちは。

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

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

NFSからダンプファイルを読み取ることはできないのでしょうか?
できないのであれば移行先のローカルへファイルをコピーしてからインポートしようと思います。
0343NAME IS NULL2009/02/12(木) 18:32:59ID:???
>>339
ありがとうございます。
0344NAME IS NULL2009/02/12(木) 18:34:54ID:???
PDOを使ってるんですが
フェッチせずにカーソルだけ進めたいときは
どうしたらいいんでしょうか
0345NAME IS NULL2009/02/12(木) 23:31:25ID:???
>>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
0346NAME IS NULL2009/02/12(木) 23:38:43ID:???
上記のオプションは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ぐらい読んでから質問してくれ。
0347NAME IS NULL2009/02/12(木) 23:45:49ID:???
>>341

どうやら3.1.2はパッチセットみたいだから、充てないとならないんじゃね?
0348NAME IS NULL2009/02/13(金) 00:26:08ID:2HjPhOBi
COBOLでORACLEのDBに接続したいのですがExpressEditionにPro*COBOLは入っていますか?
0349NAME IS NULL2009/02/13(金) 11:01:32ID:???
>>345-346
出来ました。どうもありがとうございます。
普段気を付けてても、慌ててるとまともに質問できなくなるもので…反省します。
ちなみに移行先のOSはSolaris 10で、DBはOracle11gのRACでした。
0350NAME IS NULL2009/02/14(土) 01:52:06ID:???
ごめんなさい。くだらない質問ですが、聞かせて下さい。

新学期から学校の授業で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 が絶対必要なのでしょうか?
0351NAME IS NULL2009/02/14(土) 02:45:23ID:???
HTML DBってAPEXの事だべ?
APEXはiASが確かに動いていないとダメだけど、多分起動に失敗している
サービスはiAS Consoleだけかも知れない。
この場合は、Sun JVMのバグにヒットした可能性があり。
その場合は以下の手順を踏む必要があるが・・・。

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

まあ、iAS Consoleは起動していなくても、APEXは使えると思うけどね。
0352NAME IS NULL2009/02/16(月) 22:52:38ID:???
Oracle11g/LinuxでSQLローダのダイレクトパス使って9000万件のデータを入れました。
入れてからPKとインデックスをつけようとすると
「スナップショットが古すぎます」 (´・ω・`)

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

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

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

レコード数を0にするにはどう対処すればよいのでしょうか?
対象テーブルは自分以外は使用していません。
0353NAME IS NULL2009/02/16(月) 23:26:26ID:???
>>352
UNDO領域を増やす
0354NAME IS NULL2009/02/17(火) 00:40:47ID:???
>>352
コミットしてみ。
03553522009/02/17(火) 10:14:44ID:???
会社から失礼します。
>>353
システム開発の試験環境なのであまり環境設定を変える訳にもいかず…申し訳ありません

>>354
ログインしてコミットしても何も起きず…
SQLローダのトランザクションをコミットしないといけないのでしょうか?
03563552009/02/17(火) 12:22:27ID:???
午前中に現状を調査してみました。

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

こんな感じでした…
0357NAME IS NULL2009/02/18(水) 12:37:36ID:???
>>355
>SQLローダのトランザクションをコミットしないといけないのでしょうか?
意味わからんけど…
ダイレクトパスだとトランザクションの終了はされないからコミットしろ
0358NAME IS NULL2009/02/19(木) 00:59:59ID:???
>>355
>ログインしてコミットしても何も起きず…

まさか別セッションからcommitだけ叩いたとかw
03593572009/02/19(木) 06:57:09ID:???
>>358
それがわけわからんかったw
つーか、SQL*Loaderが終わってなかったんじゃーの?
どういう指定したかわからないけど、ロード後にインデックス作りにいくと思う。
で、表共有ロックされてるからTRUNCATEできず、インデックスは使用不可になっていたのでは?
と思うけど、情報が少なすぎてよくわからん。
0360NAME IS NULL2009/02/21(土) 15:19:58ID:Tn/yJXyX
今度、Oracle10を再インストールすることになったんですが
11にするかもしれないからとにかくデータだけバックアップしろと
言われました。
単純にデータだけバックアップしたいときはどうしたらいいんですかね。
インデックスやら計画とかはどうでもいいそうです。

前任者が生きていればいろいろ聞けたんですが
この前夢枕に立った時に聞いとけば良かったな・・・
0361NAME IS NULL2009/02/21(土) 16:48:35ID:???
>>360
エクスポート・インポートの単語が出ない時点で
サポート呼ぶか外注にやってもらうのが吉かと。
0362NAME IS NULL2009/02/21(土) 17:45:47ID:???
>>360
前任者のところにいって訊いてくればいい。
0363NAME IS NULL2009/02/21(土) 17:49:32ID:???
SQLDeveloper使ってINSERT文形式でexportしておけば?
最悪、postgresとかmysqlに乗り換えることになっても何とかなりそうだし。
っていうか前任者何で亡くなったの?もしかして責任取らされて。。。
0364NAME IS NULL2009/02/21(土) 19:21:41ID:???
361だけど
テーブル数とか,そのデータ量にもよるでしょ。
なんだこの素人質問。
0365NAME IS NULL2009/02/21(土) 21:46:27ID:???
↑
素人はお前じゃボケ
0366NAME IS NULL2009/02/21(土) 21:57:41ID:???
いいや俺だね
0367NAME IS NULL2009/02/21(土) 23:47:26ID:???
>>360

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

>>362

なかなか酷なことを言いますね。
行ったり来たり出来ると便利でいいですよね。
0368NAME IS NULL2009/02/22(日) 01:28:25ID:???
>>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ファイルを
一式で、欲しい人に渡せば、後は何とか(インポート)してくれるよ。
0369NAME IS NULL2009/02/22(日) 01:35:57ID:???
ゴメン。インスタンス名の調べ方、間違った。

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
でも分かる。
0370NAME IS NULL2009/02/22(日) 01:38:47ID:???
親切
0371NAME IS NULL2009/02/23(月) 01:38:00ID:???
Windows版のRACって、例え買ってもOSからはOCFSを自由に読み書きできないのでしょうか?
どんな感じか評価版みたいなのあるといいのですが、11gのトライアル版では駄目なようですし・・・
0372NAME IS NULL2009/02/23(月) 06:40:40ID:???
>>371
OSからOCFSは見えるので、普通にアクセスは可能。
でもDBに関係しないファイルの操作はサポートされない。
Windows版だとClusterwareに含まれてるはず。
クラスタ設定時にOCR、投票DiskをOCFSで設定すれ
ば自動的に構成されるはず。
# 11gのWinRACは未経験なので違うかも
0373NAME IS NULL2009/02/23(月) 22:06:07ID:???
質問させて頂きたく。

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

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

素人な質問で恐縮ですが、
何卒。。。
0374NAME IS NULL2009/02/24(火) 06:58:25ID:???
>>373
extendとextentを混同してるような・・・大丈夫?
extend→データファイルの拡張
extent→データファイル内の表や索引を構成するセグメントの拡張

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

extentが作られる場合
空きいっぱいであるBに作られる可能性が高い。
0375NAME IS NULL2009/02/25(水) 00:23:43ID:???
>>374
動詞と名詞を混同してるような・・・大丈夫?

言いたいことはわかるが、extendは作られるのではなく、起きる。
0376NAME IS NULL2009/02/25(水) 10:58:57ID:???
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が肥え太る原因って、主にどういった場合なんでしょうか?

ググりながら勉強してるんですが、どうにも参考資料が見つからず。
質問自体が意味不明でしたら、ツッコミいただけると幸いです。
0377NAME IS NULL2009/02/25(水) 20:52:36ID:???
俺が答えられるのは、質問3だけです。

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

とりあえず、どの時間帯に、どういう処理が
実行されているかを、リストアップした方がいいと
思います。Linuxのcrontab?atコマンド?あたりで
定期的な処理が何か動いてませんか。
0378NAME IS NULL2009/02/26(木) 00:29:11ID:???
>>376
>質問1
確認したSQL文は?

>質問2
関連無い。

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

>ググりながら勉強してるんですが
大間違い。
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19224-02/undo.htm
0379NAME IS NULL2009/02/26(木) 01:51:11ID:???
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さん ありがとうございました☆
0380NAME IS NULL2009/02/26(木) 02:19:41ID:???
名詞と動詞を混同しているのは>>374も、だが。
0381NAME IS NULL2009/02/26(木) 10:55:34ID:???
11gで4000byte以上の全文検索をしたいんですが、
lobは全文検索対象にできないの?

4000byte以上のテキストが入ってくる場合の
全文検索ってどうやってるの?>11g
03823762009/02/26(木) 12:46:51ID:???
>>377
ありがとうございます。
毎朝にupdateしてるものがありました。
この辺から疑ってみます。

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

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

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

どっかに定義するSQLがあるんだろうと思ってgrepしてみたけど見当たらないよor2
0384NAME IS NULL2009/02/26(木) 21:43:20ID:???
>>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
03853812009/02/27(金) 00:20:44ID:???
>>384
Oracle Textです。
今、テーブル作ってやってみたらできました。
clobでできました!
ありがとうございます!
0386NAME IS NULL2009/02/27(金) 00:39:09ID:6rJ3Y1Cl
初歩的な質問でスマン
SQL*LoaderのINFILEに指定するファイル名って
ワイルドカードの*って使える?
0387NAME IS NULL2009/02/27(金) 00:53:17ID:5E5n6s7G
Exadataってどうなのよ?
0388NAME IS NULL2009/02/27(金) 06:49:34ID:???
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です。

注意:
同期化ジョブと最適化ジョブは、新規スキーマの作成時にのみ
自動的に作成されます。既存のスキーマからアップグレードしている場合、
これらのジョブは自動的に作成されません。
0389NAME IS NULL2009/02/27(金) 07:34:26ID:???
>>387
システムの価格は65万ドル。
ソフトウェアのライセンス価格は168万ドル。
1ドル100円として6500万円、1億6800万円。
データ容量としては、12TB*n台。RAC前提。

経験を語る事が出来る奴がこのスレにいると思う?
俺は思わない。
0390NAME IS NULL2009/02/27(金) 07:43:47ID:???
>>386
1万行ずつ4個に分かれたファイルを全て指定する、
みたいな事は出来たと思うけど、*は使えなかったように思う。
制御ファイル内のINFILE指定以外にも
コマンドライン上のDATA指定の方法もあるはずだけど、
そっちはどうだったかな。
会社で暇が出来たら試せるかもしれない。期待せぬよう。
0391NAME IS NULL2009/02/27(金) 08:03:38ID:???
>>386
OS(シェル)に展開させれば済むのでは?
03923762009/02/27(金) 10:36:19ID:???
>>384
その後、SQLをチェックしてみるとアホな副問合せが見つかりました。
首吊って死ねってくらいのアホさ・・・
作った奴を吊るし上げて、明日(今日)までに直せ!と言ったら徹夜してます。

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

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

本当にありがとうございました。
0393NAME IS NULL2009/02/27(金) 14:46:56ID:???
>384

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

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

オブジェクト自体は存在してて権限も与えてるのになぜ・・・○rz
03943862009/02/27(金) 20:25:56ID:???
>>390,391
ありがとー
シェルに搭載することにしました
0395NAME IS NULL2009/02/28(土) 00:18:19ID:???
>>389
日本だと Oracle Exadata Summit に参加した人か、中の人じゃ
ないと会話できないんじゃないかな。
経験者?国内で数人程度はいるのか?

>>393
幸せになれませんでしたか…。
Export/Import のコマンドライン詳細及び、エラー詳細は出せますか?
(エラーメッセージじゃなくエラーコードと前後関係も重要)
0396NAME IS NULL2009/02/28(土) 02:27:17ID:???
>>392
アフォは、アフォなりに
「誰も技術を教えてくれない。試行錯誤ばかりだ。」と思ってます。
可能であれば、責めるんじゃなくて、作業を分担してあげてください。
0397NAME IS NULL2009/02/28(土) 03:20:45ID:l8Y/h12f
3年生専門学校に在学中で、学校の指示でオラクルマスター11gのブロンズの資格を目指すように言われて調べてたんだけど、
受験するのに基礎�TとDBAのそれぞれの試験ごとに受験料が15000円+消費税がかかる認識で合ってますか?
0398NAME IS NULL2009/02/28(土) 04:17:35ID:???
>>397
OK
0399NAME IS NULL2009/02/28(土) 06:21:39ID:???
資格を確実に取るためには、
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
0400NAME IS NULL2009/02/28(土) 21:10:22ID:???
10gのBronze資格を去年取ったけど11gには無効なんだよなぁ。
バージョン単位での資格になってるから最新バージョンが出るとその度に同じBronzeでも取り直しは面倒すぎる。
せめてバカ高い受験料を少しでも安くしたり何か優遇してもらえれば有り難い所なんだけどなぁ。
特にplatinum所有者は受験料が10万以上するから負担が半端ないだろうから。
最近は重要視する会社も増えてるから受けさせられる事が多いが、
現場行くと資格あってもさほど役に立たないし単にオラクル社がバカ儲けするだけの資格にしか思えない。
0401NAME IS NULL2009/02/28(土) 23:57:23ID:???
>現場行くと資格あってもさほど役に立たないし単にオラクル社がバカ儲けするだけの資格にしか思えない。

何を今更
0402NAME IS NULL2009/03/01(日) 14:03:30ID:???
俺自身社内教育でsilverまで取らされたが確かに役に立たん
基本情報処理の国家認定の資格と同様に
業務上ではよく使用する簡単なクエリが出来て分からなくなったらリファレンス本見ながら対応すれば事が足りる
利用価値といえば客先業務で仕事貰う時の受け入れ面接時には多少アピール部分になるぐらい
データベースに少し詳しい人なんだなと
0403NAME IS NULL2009/03/01(日) 14:35:46ID:???
資格そのものが役に立つか立たないかは状況によると思うが、
新SilverならDBA Iをとってるわけでしょ?あの内容をマスター
しているのであれば、チューニングや設計を行う素養はあると
みなせると思うけどなぁ。
単に「SQL書けます」って人とはそのへん違うと思うんだが。
>>402が旧Silverだったらスマン。確かにあれは意味がない。
0404NAME IS NULL2009/03/01(日) 14:39:01ID:???
>>400
とりあえずSilverまで取って、バージョンアップしていけばいいんじゃないですか?
あなたが有能なら会社が研修受けさせてくれるかもしれないし…
まあ、Platinumは10万ではともて取れないですけどね。

Silverで必要最低レベルぐらいだと思うけど、Platinum持っている人は相当できる人だと思う。
Platinumは実力があって、DB構築から管理まで、あらゆる事象に対して、素早く必要なマニュアルから情報を参照し
正しく適用できる能力が必要だと思う。
0405NAME IS NULL2009/03/01(日) 18:22:50ID:TX+JAs9q
RMANの質問なのですが、
現在、10gをアーカイブログモードで運用しています。
RMANで、system表領域をバックアップしようとしたところ
エラーになりました。
sysaux表領域や別の表領域はバックアップできるのです。
system表領域をRMANでフルバックアップは、できないのでしょうか?
どなたかご教授いただければ幸いです。
0406NAME IS NULL2009/03/02(月) 01:35:54ID:eCie/yRb
失礼します。
顧客DBをWebアプリケーションで作成更新するようにしたいと思っています。
(企業名,代表社名,所在,電話,メール,受注日,契約商品,個数,残ポイント,発送日) × 1,000,000件
のイメージのDBを作成したいのですが、
この程度の規模のDBの場合、
SQLサーバー,Oracle,MySQL,その他でどの種類が比較的多く利用されているでしょうか。
1000店ほどの店舗が日中にアクセスする予定です。
よろしくお願いします。
0407NAME IS NULL2009/03/02(月) 02:07:44ID:???
MySQLかPostgres
XEて用途限定なしだっけ?だったらXEでもいいかも。
0408NAME IS NULL2009/03/02(月) 02:14:13ID:???
100万件程度ならMySQLだろうね

リレーショナル(笑) と言われることも多いけど
今の時代DBにリレーショナルさせない方が主流になりつつあるしね
0409NAME IS NULL2009/03/02(月) 08:43:19ID:???
>>406
質問したり相談する相手がこのスレだけならば
素直にOracle買ってサポート受けるのが吉かとアドバイス。
0410NAME IS NULL2009/03/02(月) 12:04:35ID:???
>>405

当然出来る。
というか出来ないとフルバックアップの意味がない。
バックアップ先は何よ?
ディスク、それともテープ?
後はO/Sは何?
>>2ぐらい読んでから質問してくれ。
0411NAME IS NULL2009/03/02(月) 19:49:17ID:3VFbPniH
Application Server 10g(10.1.3)って
Oracle Databaseのバージョンいくつに対応するんでしょうか?
0412NAME IS NULL2009/03/03(火) 09:16:05ID:9sMragPd
CRS環境のとき、ファイアウォールに穴あけなきゃいけないポートって
どこかに一覧あったっけ?
0413NAME IS NULL2009/03/03(火) 20:35:38ID: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+)
0414NAME IS NULL2009/03/03(火) 22:42:47ID:???
>>412
某社がファイアウォールを増設した時は、彼らは
LANアナライザ(Sniffer)で、2週間くらいウォッチして
穴あけなきゃいけないポートを、○△×でリストアップしたよ。

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

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

ttp://otndnld.oracle.co.jp/document/products/oracle10g/102/solaris/B25025-02/app_port.htm
Oracle Databaseのポート番号の管理
0415NAME IS NULL2009/03/04(水) 07:59:02ID:???
11gってもうx.6まで出てるのかw
04164122009/03/04(水) 09:33:54ID:???
>>414
マジかwww
適当だなぁ・・・あとから参照も出来ないってどういうことなんだろ。
0417NAME IS NULL2009/03/04(水) 10:31:34ID:6d/7Bbw/
CRSインストール後、仮想NICが出来ると聞いたんだけど
ifconfig見ても無いっぽい。
これってDBもインストールしたあとじゃないと出てこないのかな
0418NAME IS NULL2009/03/04(水) 11:14:05ID:???
>>417

ちゃんとクラスタは構成されているのかな。
crs_stat -t とかで確認。
04194172009/03/04(水) 13:21:00ID:???
バージョンは10gR1です。

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

テラインスコ失敗www
olsnodes -n だとちゃんと見えるんだけどなぁ
調べてたらvipca実行しろとか出てきた。 いつ実行するんだこれ。
0420NAME IS NULL2009/03/04(水) 21:47:09ID:???
>>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で地雷が潰れるまで、
待っとけこの野郎、ってことなんだと解釈してる。
0421NAME IS NULL2009/03/04(水) 23:57:13ID:???
>>416
つか、インターコネクトにファイアウォール必要?
パブリックのクライアント-DBならCRSとか関係ないんだし。

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

>>420
>他のOSで地雷が潰れるまで
PSRが同じで修正 Bug一覧が違うか?という点から何か
が見えてくるような来ないような。
0422NAME IS NULL2009/03/05(木) 02:44:15ID:8flqGIdl
PL/SQLを見よう見まねで使い始めたところです。

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

そこで質問です。なお、DB設計には手を加えないものとします。
1) プロシージャは値を返さないと聞きましたが、OUTの引数はどういう使い方をするのでしょうか?
 OUTの引数は返り値だと思っていたのですが、どうも違うようです。
 できれば、OUTの引数を取り出したいと思っています。
2) 5つのプロシージャは、パッケージ本体のプロシージャと同一名であり、
 どうもこちらに渡して処理を行っているようです。
 そこで、パッケージ本体にしかなさそうな1つのプロシージャと2つのファンクションは
 パッケージ本体内でしか使用できず、外部からは直接使用できないのでしょうか?
0423NAME IS NULL2009/03/05(木) 07:20:48ID:???
>>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名で分担して作る、なんてことをします。
ベテランは最初だけ頑張るって事じゃなくて最初から最後まで頑張りますよ。
0424NAME IS NULL2009/03/05(木) 09:34:12ID:47/HAHeb
Oracleインストールの手順書なんかを読むと
ulimitでプロセス数とファイルディスクリプタ数を変更しろとあるけど
ほんとにプロセス1万個とかファイル6万個とか同時に開くの?
0425NAME IS NULL2009/03/05(木) 19:03:33ID:???
>>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
0426NAME IS NULL2009/03/06(金) 00:01:16ID:???
Linuxで10gR1のインストールを練習中です。
どの手順書を読んでも Xを飛ばす設定を最初に行いますが
これは必ず必要なものなのでしょうか。

各サーバのディスプレイに直接表示、では済まないのでしょうか
0427NAME IS NULL2009/03/06(金) 07:13:37ID:???
>>426
その場合、必要ではないです。
でも手順には書かれてあるべき内容です。

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

Linuxのサーバが10台あると仮定します。
このとき私は、サーバ上のディスプレイを使ってインストールしたくありません。
私は、画面が広いX端末を1台用意して、
サーバの画面をXで飛ばさせて複数台を同時にインストールしたいです。
04284262009/03/06(金) 09:54:17ID:???
>>427
ありがとうございます。
マジで必要なのは rootに化けてGUI使うとき くらいですかね。
0429NAME IS NULL2009/03/07(土) 02:46:12ID:???
>>419

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

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


0430NAME IS NULL2009/03/07(土) 02:49:08ID:???
>>421

同意。
ボラクル及びCRSのインターコネクトはプイラベートネットワークが基本。
よってF/Wや、iptablesの使用は全く推奨されていない。
CRSのインスコ時にダイナミックに使用ポートを決めてくる事もあるため、
F/Wやiptablesが有効になっていると、インスコそのものが失敗する事も
ある。
0431NAME IS NULL2009/03/08(日) 20:43:07ID:???
なんか基本的なことを偉そうに語る奴らばかりでイライラするぜ。
0432NAME IS NULL2009/03/09(月) 10:48:41ID:???
「基本的なこと」を語ってるだけで「偉そうに」見えるのって
何コンプレックス?
0433NAME IS NULL2009/03/09(月) 11:21:16ID:???
ハイハイ、ワロスワロス
0434NAME IS NULL2009/03/10(火) 09:31:01ID:???
10gR1をRAC構成で使ってます。
Oracleの動作ログとか起動ログってどこにできるのでしょうか。
CRSの調子が悪くてログを見たいのですが
find $ORACLE_BASE -name "*.log" -mtime 1
とかやってもいっこも出てきません。
Oracleってログはインストール時にしか吐かないとか?
0435NAME IS NULL2009/03/10(火) 14:10:06ID:bhlrenuU
ASMを実験中なんだが、データベースが
ファイルじゃなくてASMで指定したロウデバイスに
ちゃんと保存されてるかどうかを確認したいんだが
なにをみたらいいのかね?

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

Oracleのバージョンは10.1.0です
0436NAME IS NULL2009/03/10(火) 14:35:44ID:???
> だったけど、これは実際にはどこを指してるのかわからん

何をどこまで知りたいのかね。
+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;
04374362009/03/10(火) 14:53:35ID:???
ありがとう。
ディスクグループの名前をうっかり普通のインスタンス名と
同じにしてしまったので、なにがなんだかわかんなくなってたっぽい。

>こんな感じか。
をこれから試してみる。問題ないことが確認できたらあとでチューしてあげる
0438NAME IS NULL2009/03/11(水) 06:54:04ID:???
>>434
実機が無いから記憶で答えると、alert.logかな。
起動した、とかシャットダウンした、とか
ORA-600のエラー出した、とか、そういうのが出る。
インスタンス単位で出る。

あと、どこのクライアントから接続してきた、とかは
listener.log。これはリスナー単位で出る。
0439NAME IS NULL2009/03/11(水) 22:16:31ID:???
>>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

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

教えてもらう態度じゃないな。墓穴掘って死ね。
0442NAME IS NULL2009/03/12(木) 11:19:27ID:DMHovpVA
$ORA_CRS_HOME/crs/init/UNKO01/
の下に3Gくらいの巨大なファイルがいっぱいあるんだけど
core.1234
みたいな名前のはやっぱりただのcoreファイルかな。
こんなの消しちゃってもいいよね?
0443NAME IS NULL2009/03/12(木) 22:25:30ID:???
通常は消しても支障ないが、頻発するようなら取り合えずサポートに
提出する必要性を考えてスタックトレースだけ取って消去。
0444NAME IS NULL2009/03/13(金) 09:39:20ID:???
crs_stat -t
で出力される名前が省略されずにフルで見れるを方法を教えてください。


あと、なんでいつもOracleはこんな適当な仕事をするのかも教えてください。
0445NAME IS NULL2009/03/13(金) 12:33:08ID:???
#!/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;}'
0446NAME IS NULL2009/03/13(金) 22:54:03ID:???
>>444
しっかり自分で調べてから物事はたずねてくれ。

オラクルがアバウトな感じなのはアメリカを象徴するような会社だからだ。
嫌なら使うな。
0447NAME IS NULL2009/03/14(土) 05:55:46ID:mzAyY/XE
oracle9iのクライアントからoracle11gのサーバーに接続できますか?
0448NAME IS NULL2009/03/14(土) 09:39:58ID:???
Oracleのサイトでは分からなかったのかい?
0449NAME IS NULL2009/03/14(土) 10:25:54ID:???
>>447-448

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

KROWN にはあるから探してみな。
0450NAME IS NULL2009/03/14(土) 12:10:19ID:???
仕方ねぇから調べてやったぞ。
9iクライアントから11gに繋ぐ場合、クライアントのバージョンが9.2.0.4以降である必要がある。
9.2.0.3より下位バージョンは例え繋がったとしてもサポート外だそうだ。
0451NAME IS NULL2009/03/14(土) 14:22:43ID:???
なんだか他力本願なヤツが増えてるな。
0452NAME IS NULL2009/03/14(土) 14:41:47ID:???
他力本願の意味わかってるか。
0453NAME IS NULL2009/03/14(土) 18:11:16ID:???
>>452
努力しないで他人の力をあてにすること。
お前こそ日本語、わかってるか?
0454NAME IS NULL2009/03/14(土) 18:48:56ID:???
>>453

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

バカは黙っとれ。
0455NAME IS NULL2009/03/14(土) 18:51:30ID:???
>>453

もしかしてお前在日か? 死んで詫びなさい。
0456NAME IS NULL2009/03/14(土) 18:58:37ID:???
本来の意味じゃないけど誤用でもない。さあ無教養はどっち
0457NAME IS NULL2009/03/14(土) 19:01:13ID:???
下手に宗教用語使うからじゃないの
0458NAME IS NULL2009/03/14(土) 20:09:42ID:???
もはや宗教由来の日常語に過ぎない。
0459NAME IS NULL2009/03/15(日) 01:37:24ID:???
一般的な使い方を否定してうだうだやってて面倒なヤツが多いな。
0460NAME IS NULL2009/03/15(日) 23:47:42ID:hRb5KBp6
「確信犯」て誰かが書いたら、同じ反応するんだろうね。
0461NAME IS NULL2009/03/16(月) 08:17:49ID:???
確信犯と役不足はいわゆる誤用を認めない立場も有効
0462NAME IS NULL2009/03/16(月) 09:04:31ID:???
「姑息」「潮時」「自己責任」「失笑」「煮詰まる」なんてのもあるな。
0463NAME IS NULL2009/03/16(月) 16:50:29ID:???
見事な仕事だと感心するがどこもおかしくはない
0464NAME IS NULL2009/03/16(月) 18:06:54ID:???
何の板かよくわからなくなってるが、しっかり調べた上でわからなかったら聞きましょう、ってことで。
これより質問板再開。
0465NAME IS NULL2009/03/18(水) 02:27:00ID:???
oracle dataguardについて質問させて頂きたくお願いします。
ver9.2.0.5です。

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

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

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

また、注意点、正式な手順があるなら
ご教授頂きたく。。
よろしくお願いします。
0466NAME IS NULL2009/03/18(水) 03:51:20ID:???
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. 必要ならアーカイブログモードからノンログアーカイブへ変更

0467NAME IS NULL2009/03/20(金) 04:24:38ID:???
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する正しい?方法を
ご教授願います。
0468NAME IS NULL2009/03/20(金) 04:27:05ID:???
complex_view_merging
でKROWNを検索してみたところ、
オイラは今、ちょっくら青ざめている状況です。

長い間8.1.7利用してて、
2年前から10gR2利用のオイラですけど、
こうなったら、初期化パラメータで
_complex_view_merging=false
設定で行こうかと思ってます。
経験談持ってる人は語っていただけませんか。
0469NAME IS NULL2009/03/20(金) 05:11:23ID:???
>>467
KROWNには、次のような記載がありました。
============================================================
※フェイルオーバーの詳細な手順はバージョンによって異なるため、
 フェイルオーバー実行時には必ず使用バージョンのマニュアルを
 参照してください。
============================================================
そのKROWNには、standbyが受信済みのREDOを適用する
FINISH文の紹介もありつつ、
primaryダウン時に緊急的な対処として行う
強制的なACTIVATEについても記述がありました。

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

「�@のSQL文が実行できません。」という記載の意味することが、
standbyに接続できないのか/実行したけど無応答なのか/エラーが発生したのか
良く分からないので、その状況について、詳細に語るべきだと思います。
0470NAME IS NULL2009/03/20(金) 09:20:21ID:???
>>469
そんなことここで言われてもな。
そんなに気になるなら、サポートに強く言って、修正してもらえ。
0471NAME IS NULL2009/03/20(金) 10:02:49ID:RBnEHUMv
>>468

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

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

ただ、結果不正と性能劣化のどっちがましなのかと考えると
性能劣化なので、そこは我慢するしかないのかと思う。
0472NAME IS NULL2009/03/21(土) 23:34:57ID:???
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ダウン時のフェールオーバーは
不可能だったりすると、、悲しいです...
0473NAME IS NULL2009/03/22(日) 01:36:18ID:???
>>472
まず、プライマリ側落ちててフェールオーバーできなかったらなんのためのデータガードだと・・。
それからマニュアルないとか言い訳にならない。
インターネットつながってる時点でマニュアル見られるんだから。
もっと色々自分で調べるクセをつけないと生き残れないぞ。
0474NAME IS NULL2009/03/22(日) 08:31:14ID:???
ORA-01154を調べた結果を、俺なりにまとめます。
オフィシャルに回答できるのは、ORACLE社だけだから、
サポート契約を検討してね。

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

[参考]
モードには以下の3つがあります。
・最大保護モード
・最大可用性モード
・最大パフォーマンスモード
確認方法は、select protection_mode from v$database;です。
467さんの希望は、最大可用性モードか、最大パフォーマンスモード
なんだと思います。一度、モードを確認してください。
0475NAME IS NULL2009/03/22(日) 18:29:55ID:???
474さん ありがとうございます。

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

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

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

また、サポート契約の件、検討します。
ありがとうございます。
0476NAME IS NULL2009/03/23(月) 00:15:19ID:???
('A`)つRECOVER MANAGED STANDBY DATABASE CANCEL;
0477NAME IS NULL2009/03/23(月) 12:59:46ID:???
>>476
ッアッーーー!!
0478NAME IS NULL2009/03/23(月) 18:55:56ID: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を見たらなんか全然違う名前でした。
0479NAME IS NULL2009/03/23(月) 19:15:09ID:???
>>479
じゃあ書き込むなよ。
せっかくなので余談だが、RACだとデフォでlistener_SIDになる。
04804792009/03/23(月) 19:17:33ID:???
スマン、>>478だったw
04814782009/03/23(月) 19:38:58ID:???
>>480
ドンマイ
0482NAME IS NULL2009/03/23(月) 22:41:19ID:???
>>476

467です。できましたT_T
ありがとうございましたT_T
0483NAME IS NULL2009/03/24(火) 00:32:57ID:???
2台のWinServer2003R2にそれぞれXEのサーバ、クライアントを入れているんで
すが、クライアントから接続出来ません。

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

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

svr2k3→svr2k3の組み合わせだと別途注意すべき点があったりしますでしょう
か?
0484NAME IS NULL2009/03/24(火) 03:45:28ID:???
>>483

どんなエラーがクライアント側に返ってきているんよ?
sqlnet.oraのNAMES.DIRECTORY_PATHにWorldとか指定されていて
「繋がらねぇ〜」とかってオチだったりしてな!?
0485NAME IS NULL2009/03/24(火) 18:58:38ID:???
2003で一番ありがちなのは、Windows FireWallサービス。

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

俺はORACLEをインストールしたサーバでは、
スッパリ諦めて無効にしているが、自己責任で。
0486NAME IS NULL2009/03/24(火) 19:06:00ID:???
>>471
>>468です。経験談ありがとうございます。

オイラが信頼するオイラ以上の知識を有する知り合いにも
相談しました。ちなみに、>>471さんと同意見でした。
0487NAME IS NULL2009/03/27(金) 16:52:45ID:???
SELECT * FROM TAB;

で出てくる CLUSTERID ってなに?
ググってもこれの解説してるところがない。
0488NAME IS NULL2009/03/27(金) 22:59:51ID:LUFIdYWI
http://www.geocities.jp/yhp20010911/index.html
0489NAME IS NULL2009/03/28(土) 00:51:00ID:???
>>487

TAB自体が下位互換性のために未だに使用できる様になっているけど、
使用は推奨されていない。
0490NAME IS NULL2009/03/28(土) 20:01:59ID:???
>>489
ありがとう。これからはALL_TABLES使います。
0491NAME IS NULL2009/03/29(日) 21:41:29ID:tW/sgpmt
今度10Gで初めてASMでDBを作成してみようと思っているのですが、
大まかな作成の流れを教えて下さい。

DB作成未経験の初心者です、よろしくお願いします。
0492NAME IS NULL2009/03/29(日) 22:11:22ID:???
10G じゃなくて 10g な。

- DBCAを起動する
- ASMの設定をする
- DBを作成する

こんだけ。簡単だよ。



0493NAME IS NULL2009/03/29(日) 22:35:00ID:tW/sgpmt
>>492
なるほど、それだけでいいんですね。ありがとうございます。
0494NAME IS NULL2009/03/30(月) 02:03:04ID:???
10.1と10.2で結構違って面白いよな
0495NAME IS NULL2009/04/01(水) 11:16:41ID:???
PL/SQLを使おうとしたのですが
NUMBER型の引数の値を一度NUMBR型の変数に代入し
RETURNにその変数を指定すると
使用不可コードのワーニングが出て困っています。
RETURNの型はNUMBER型です。
引数をそのままRETURNで返すとワーニングは出ません。
何が悪いのでしょうか…
2バイト文字がいけないのかと全て無くしても変わりませんでした。
0496NAME IS NULL2009/04/01(水) 11:55:59ID:???
日本語でおながいしまつ
0497NAME IS NULL2009/04/01(水) 21:41:52ID:???
>>489
まじで!

はじめてしったわ・・・
0498NAME IS NULL2009/04/02(木) 07:34:24ID:???
>>495
本当にそのレベルの処理なら、ここで
PL/SQLのコードを晒しても問題ありません。
公開したくない情報を削って、
晒してください。

また、ORA-XXXXのエラー番号、
ORACLEのバージョン、オペレーションシステム
についても、情報が必要です。

このスレ住民は、なぜかとても親切なので、
再現性を確認してくれる可能性が高いです。
0499NAME IS NULL2009/04/02(木) 15:58:10ID:???
v$asm_disk の各項目の意味とかをまとめて解説してるページってある?
HEADER_STATUSのとりうる値とか、解説がないから
見ても異常かどうか勘でしか判断できない
v$asm_diskgroupなんかもよくわからんよね
0500NAME IS NULL2009/04/02(木) 20:43:48ID:???
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ではダメ?

0501NAME IS NULL2009/04/03(金) 01:36:14ID:???
>>497

結構有名なんだけどな。
一応ソースな。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4249.htm#sthref2082
05024992009/04/03(金) 10:47:21ID:???
>>500
ありがとう。少し助かりました。
0503NAME IS NULL2009/04/03(金) 16:37:36ID:q9U6bHad
RAC構成で、 ときどき ORA-01017が出ます。

ずっとパスワードエラーでログインできないなら まだわかるんだけど
ときどき ってのが腑に落ちません。
これって、どっちかの系でユーザがいないってこと?
そんなことってRAC構成でありうるんですか・・・?
0504NAME IS NULL2009/04/03(金) 23:52:18ID:???
>>503

エスパーじゃないから、プラットフォームも分からないし、DBのバージョンも知りません。
そんなので答えられると思うんですか?
0505NAME IS NULL2009/04/04(土) 00:33:11ID:???
>>504
ありがとうございます。 とりあえず よくあるトラブルではないことと、
OSやバージョンに依存する可能性の高い、そこそこ珍しい現象であること
がわかりました。
バージョンですが、10gの10.1.0.2です。OSはRHEL3です。
RAC構成でASMを使っています。
0506NAME IS NULL2009/04/04(土) 03:35:36ID:???
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認証を一度やめてみてはいかがですか?
0507NAME IS NULL2009/04/04(土) 03:36:48ID:???
誤:SQL*Server
正:SQL Server
0508NAME IS NULL2009/04/04(土) 09:03:29ID:???
OS認証が推奨されていてもORACLEベース認証の方がいいな
0509NAME IS NULL2009/04/04(土) 10:30:08ID: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が使用できないのは分かってるいるのですが。
それ以外のエラーへの対応がわかりません。
分かる方アドバイスください。お願いします。


0510NAME IS NULL2009/04/04(土) 12:09:11ID:???
>>505

可能性としてはロードバランサーがトップにあって、片側のRACのパスワードファイルが
正しく設定されていないとかかな。
0511NAME IS NULL2009/04/05(日) 15:21:30ID:JiS+iut1
すみません、質問があります。
会社から発行されたチケットを使用してテストを受けようと思うのですが、
会社がチケット番号などから自分のテスト結果を参照することは
可能でしょうか?
0512NAME IS NULL2009/04/05(日) 18:25:25ID:???
可能
0513NAME IS NULL2009/04/06(月) 00:56:49ID:A28vG0H2
>>505
http://otn.oracle.co.jp/forum/message.jspa?messageID=6016756
05145032009/04/06(月) 03:00:44ID:???
>>513
すみません。これは全然関係ないです。
>>510
すみません。ロードバランサーは使っていません。
ただ、RACが交互に系を切り替えてるような気はします。
そして片方が正しく設定されていないのだと思います。

>>506
OS認証は使っていないはずですが、前任者が環境構築するときに
片系はOS認証、もう片系はOracle認証なんてことをやっちゃってるかもしれません。
そんなことできるのか知りませんが。
0515NAME IS NULL2009/04/06(月) 19:14:03ID:???
>>514
>そして片方が正しく設定されていないのだと思います。

だったら、片側のインスタンスにだけ接続が行くように設定して試してみれば良いやん。
active_instance_count を設定すれば、どちらか片方のインスタンスのみに接続されるようになる。
0516NAME IS NULL2009/04/07(火) 01:19:17ID:???
>>514
ちょっとは自分で学ぼうや。
0517NAME IS NULL2009/04/07(火) 10:48:53ID:???
>>514

ロードバランサーがなくてもリスナーサイドロードパランシングが使われてるんだろ。
いずれにせよ自分のPCにでも各インスタンスに対するTNSエントリを設定してsysで
繋げてみればいい。
それでどっちかでエラーになるのならパスワードファイルを再作成だな。
0518NAME IS NULL2009/04/07(火) 11:22:08ID:???
リスナーサイドロードバランシングw
0519NAME IS NULL2009/04/07(火) 22:25:46ID:???
うむ、投稿した後に間違いに気がついたぞ。
まあ、日本語50音直打ちだから許してくれ〜い。
欧州、そして今はアメリカでDBAとして働いているが、日本語キーボードはいつも俺と共にあるw
英語101キーボードの配列なんかで仕事が出来るかよ。
0520NAME IS NULL2009/04/08(水) 17:25:28ID:epT/t44l
アーカイブログのサイズを調べるSQL文って書けるのかな
0521NAME IS NULL2009/04/08(水) 17:48:11ID:???
書けますん
05225202009/04/08(水) 18:02:13ID:???
>>521
ありがとうございました。書くことが出来ました。
0523NAME IS NULL2009/04/08(水) 19:59:36ID:???
>>522
ッ!?
0524NAME IS NULL2009/04/09(木) 22:13:13ID:???
使うテーブル全部にアナライズかけたばかりなんだけど、
ルールベースが採用したインデックスが遅かったので、ヒント句で違うインデックス指定したら早くなったんだけど
俺、オラクルに勝ったと思っていい?
0525NAME IS NULL2009/04/09(木) 22:16:28ID:???
analyzeかけたのになんでRBO使ってんの?
0526NAME IS NULL2009/04/09(木) 22:34:40ID:???
あ、コストベースの間違いでした
0527NAME IS NULL2009/04/09(木) 22:38:08ID:???
もうひとつ質問なんですけど、
SQLサーバのテーブル(中身も)をオラクルに入れたいんだけど、

オラクル⇒オラクルだとIMP,EXPだと思うけど
SQLサーバ⇒オラクルだとどういう方式があります?
0528NAME IS NULL2009/04/10(金) 04:39:58ID:???
>>527

格好良いことやりたのならGeneric Connectivity。
力技でやるのならcsvで吐き出したものをローダー使ってぶち込む。

0529NAME IS NULL2009/04/10(金) 08:21:34ID:wKOZtIHP
>>528
ぶち込むとか、カッコええ
男の仕事って感じ
0530NAME IS NULL2009/04/10(金) 10:10:39ID:???
固定長のテキストファイルを読んで
オラクル10gのテーブルに格納したいのですが
一部の項目がCOBOLのパックになってます
この項目をNUMBER型に格納するのに
一番スマートなやり方教えてください
0531NAME IS NULL2009/04/10(金) 23:19:33ID:???
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
0532NAME IS NULL2009/04/12(日) 23:47:38ID:XwgobUls
質問です。。。

今、oracle bronze10gをもっているのですが、
silver11gを取得するには、silverDBA11gを取得すれば
いいのでしょうか?
それとも、bronze10gなので、silverDBA10gしか受験で
きないのでしょうか?

ご教授よろしくお願いします。
0533NAME IS NULL2009/04/13(月) 00:27:22ID:???
Oracleのサイトに詳しく説明されているのに、なぜ読まないかな。

アホなのか?
0534NAME IS NULL2009/04/13(月) 05:51:31ID:QgB5aUsW

クエリの質問です。
ある結果から、頭一文字で集計することは出来ないのですか?

select count(*),tag from hoge
group by SUBSTR(aaa , 0 , 1) tag

こんなイメージなのですが、
どのようにすればよいのでしょうか。
05355342009/04/13(月) 16:25:47ID:???

自己解決。
普通に出来ました。

select SUBSTR(aaa , 0 , 1) count(*) from hoge
group by SUBSTR(aaa , 0 , 1)
0536NAME IS NULL2009/04/13(月) 22:25:05ID:919/buMn
アホで〜しゅ
0537NAME IS NULL2009/04/14(火) 14:30:04ID:???
カラムが200こくらいあってレコード数が50万くらいあるテーブルで
ちょっとカラムの数を半分くらい減らそっかな と思って

ALTER TABLE hoge DROP (unko101,unko102, ... ,unko200);

というクエリーを実行したら、ものすごい時間がかかって全然おわらない
んだけど、これをもっと高速にしたいときはどうしたらいいの?
チェックポイントってのが問題なの?
バックアップはとってあるので、チェックポイントとかどうでもいいんです。
0538NAME IS NULL2009/04/14(火) 20:50:04ID:???
>どうしたらいいの?
そういう糞テーブル設計者を呪う。
0539NAME IS NULL2009/04/14(火) 21:08:16ID:BaBqmTPe
どうせコボラーが設計したテーブルなんだろ。
よくあるよ。
0540NAME IS NULL2009/04/14(火) 21:19:18ID:???
>537
遅いのはインデックスの列も削除してるとか、hogeを参照してるセッションがあるとかが原因かもね
カスケードオプションとかの制約とかも中尉。

入れ物を新しく作って入れなおした方が速いかもしれぬ
0541NAME IS NULL2009/04/14(火) 21:23:13ID:BaBqmTPe
>>537
>DROP (unko101,unko102, ... ,unko200);

見た感じ、カラムを200から100に減らすのか?
それだったら、新規にテーブルを作って、INSERT INTO SELECT した方が早いんじゃないかなぁ。
さらに・・・、ディスクに余裕があるならば、旧テーブルと新テーブルで格納するディスクを分ける。
あと、ノーアーカイブログモードにする。
当然、INSET INTO SELECTする時は、パラレルとNOLLOGINGモードで実行な。

処理時間はレコード件数ではなく、テーブル容量に依存する。
上記対策を組み合わせれば、かなり早くなるとは思う。
0542NAME IS NULL2009/04/14(火) 21:31:21ID:???
50万件程度ならなんとでもできる

と思ったらカラムが200もあんのか!そんなにあるとどのカラムが何に使ってるか把握できんだろ
列削除したら動かなくなるプログラムが出てくるんじゃないか?
0543NAME IS NULL2009/04/14(火) 22:17:04ID:???
ありがとうございます。
結局30分ほどほっといてジャンプ読んでたら終わってました。

>>538
すでに実施済みです。

>>539-542
実はこれはほんの序章にしか過ぎなくて、このあとに
1000カラムの100万件が待ち受けてるのでした。(800カラムくらい削る予定)
まさに1000万パワーズです。泣きそうです。
>>541を参考にしてがんばります。
0544NAME IS NULL2009/04/14(火) 22:22:06ID:???
>1000カラム
( д)゚ ゚
0545NAME IS NULL2009/04/14(火) 22:57:08ID:???
>>543

設計者、汎用機上がりだろ?
カラムが1000とかって、RDBMSで絶対にありえない。
0546NAME IS NULL2009/04/14(火) 22:57:47ID:BaBqmTPe
>>543
> 1000カラムの100万件

ワロタww

まぁALTER TABLE DROPした方が楽と言えば楽だけど、その場合はテーブル容量が変わらないから注意してね。
実行後にshrinkしとかないと無駄な領域が増えるばかりでなく、フルスキャンした時にパフォーマンスが劣化するよ。
0547NAME IS NULL2009/04/15(水) 00:25:53ID:???
銀行系のDBだとそういう基地外カラムがあるとは聞くけど、たいしたもんだ
0548NAME IS NULL2009/04/15(水) 00:47:05ID:???
99%、コボラーの犯行だろ。

行連鎖・行移行しまくりなんだろうなぁ。
怖いなぁ。
0549NAME IS NULL2009/04/15(水) 04:06:11ID:???
>>527

Oracle Migration Workbench
0550NAME IS NULL2009/04/16(木) 18:39:10ID: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だとは思うのですが、インストールする方法はあるんでしょうか?
0551NAME IS NULL2009/04/16(木) 18:51:12ID:???
/etc/redhat-release
0552NAME IS NULL2009/04/16(木) 18:54:28ID:???
>>550

./runInstaller -ignoreSysPrereqs
0553NAME IS NULL2009/04/16(木) 18:54:42ID:???
-ignoreSysPrereqだっけ
05545502009/04/16(木) 19:21:54ID:bVm5EM13
ありがごうございます。
./runInstaller -ignoreSysPrereqs
./runInstaller -ignoreSysPrereq
試しましたが、結果は変わりませんでした・・
0555NAME IS NULL2009/04/16(木) 19:51:28ID:???
だから、/etc/redhat-releaseをRHEL4のものに書き換えればいい。
0556NAME IS NULL2009/04/16(木) 19:54:49ID:???
とりあえず、そこで詰まるヤツにCentOSにオラクル入れるの無理だろ。
おとなしくミラクルでも使っとけ。
05575502009/04/16(木) 20:36:54ID:bVm5EM13
お騒がせしてすみません。
結局、インストーラの、iniファイルに手を加えて、
そこのエラーは通しました。

まだ、インストール成功していないのですが・・・、
上からの指示でなければ、違うOSにするんですけど・・・
0558NAME IS NULL2009/04/16(木) 21:43:44ID:???
centOSかよ・・・・・

同じ無料LinuxOSだったら、Oracle Enterprise Linux の方が相性が良いのに。
0559NAME IS NULL2009/04/16(木) 22:08:57ID:???
>   Passed

なんだ。エラーはそこじゃないな。
0560NAME IS NULL2009/04/16(木) 22:35:02ID:???
10g、11g RAC(ASM、OCFS2の両方)で動作確認した事あるよ。
気を付けるとしたら、ちゃんとパッケージが入っている事ぐらいだったか。
それもyum使えば入るしね。
0561NAME IS NULL2009/04/16(木) 23:15:29ID:???
>>550

これじゃね?

http://otn.oracle.co.jp/forum/thread.jspa?threadID=35004153&tstart=0
0562NAME IS NULL2009/04/17(金) 06:03:44ID:???
>>561

いくらなんでもXでつまづく事はねぇんじゃね?
0563NAME IS NULL2009/04/17(金) 09:13:56ID:???
しかし何故その上司はCentOSにオラクルを入れよと命じたのか。
サポートされてないのに。
教育のため??
05645502009/04/17(金) 19:29:28ID:kWFhDTER
550です。お騒がせしてすみませんでした。
Linux系の環境をいじった経験がなく、非常に混乱していました。
GUIでインストーラを立ち上げて、インストールすることができました。
皆さん、ありがとうございました。

CentOSにOracleというのは、教育のためというわけではないのですが、
諸事情あって、そういうことになってしまいました(汗)
0565NAME IS NULL2009/04/17(金) 23:55:14ID:???
で、原因はなんだったんだ?もしかしてXだったかの・・・?
0566NAME IS NULL2009/04/19(日) 11:04:10ID: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
あなたが馬鹿だから
0567NAME IS NULL2009/04/20(月) 10:09:06ID:???
今までSQL Serverしか経験がなく初めてオラクルのDBを使用します。
会社指示で勉強ついでにオラクルマスターの資格も取れればと思いWindows上で環境を作ろうとしています。
オラクルマスターの参考書にバージョン11gの30日分の体験版DVDが同梱されていたのでひとまずそれを使っていればいいかなと予定はしているのですが、
使用期限切れが心配なため、無償で期間制限ない体験版をさがしています。
バージョンは11もしくは10.2のどちらでもかまいませんので教えていただけませんか?
本来会社でライセンス買ってくれればいいんですが実務でなく勉強だけなら買えないといわれたのでこんな状況になってます。
0568NAME IS NULL2009/04/20(月) 11:02:52ID:???
つ[Oracle 10g Express Edition] (無償だが体験版に非ず)
0569NAME IS NULL2009/04/20(月) 12:34:59ID:???
体験版は体験版に非ず
05705672009/04/20(月) 13:05:30ID:???
返信ありがと。
とりあえずしばらく使えるものがあればいいのでExpress Editionでもいいかと思いました。
制限の具合はこれから確認してみます。
0571NAME IS NULL2009/04/20(月) 20:06:00ID:???
>>570
Oracleのサイトに行けば、機能制限が無いインストーラーをダウンできるよ。
0572NAME IS NULL2009/04/20(月) 21:31:24ID:E/kjbKAy
米Oracleは4月20日(現地時間)、米Sun Microsystemsを買収したと発表した。
金額は1株あたり9.50ドルで買収総額は56億ドルになる見込み。

- Oracle Buys Sun
http://www.oracle.com/us/corporate/press/018363
0573NAME IS NULL2009/04/20(月) 22:23:15ID:???
資格目的ではなく、Oracleの勉強をしようと思っています。
OracleDatabaseServerの導入・構築・保守(バックアップ・リカバリ)など一通りできるようになりたいのですが、
オススメの本とかありますか?
0574NAME IS NULL2009/04/20(月) 22:40:30ID:???
マニュアル。
0575NAME IS NULL2009/04/20(月) 22:51:37ID:???
マニュアルはどこでダウンロードできますか?
0576NAME IS NULL2009/04/20(月) 23:31:10ID:5HLI7OQp
どこでって・・・・・(汗)

0577NAME IS NULL2009/04/21(火) 02:02:50ID:???
>>567

全部とは言わないが、>>2ぐらいは読むと大きなヒントがあるかもな。
0578NAME IS NULL2009/04/21(火) 09:20:40ID:???
>>577
30日以上使うつもりの奴に「30日経っても使えるよ」てのはつまり
「バックレてそのまま使えよ」と勧めてるわけ?
0579NAME IS NULL2009/04/21(火) 17:49:57ID:???
>>571
一応言っとくと、ライセンスなしで使い続けてると・・
05805502009/04/21(火) 18:45:13ID:9X+HJO0M
>>565
最終的には、
Xだったと言えば、Xだったのですが、
PCにハード面の問題があったようで、Xにしたときに画面が真っ暗になってしまい、
混乱してしまった感じです。
0581NAME IS NULL2009/04/21(火) 19:56:08ID:???
>>578

http://www.oracle.com/technology/software/popup-license/standard-license.htm

日数の制限はないみたいだけど。
0582NAME IS NULL2009/04/21(火) 22:37:53ID:???
>>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の基礎的な勉強は家でしろ。待ち時間が多いから、同時にゲーム、音楽、読書、映画」
0583NAME IS NULL2009/04/21(火) 22:42:42ID:???
パッチは仕事で扱ってないと手に入らなくね?
0584NAME IS NULL2009/04/21(火) 22:57:39ID:???
>>582

どうしようもない馬鹿だな。釣りにしては下手だし。
0585NAME IS NULL2009/04/21(火) 23:09:47ID:???
>>582
オラクルやってく上で、英語は大事だが、その他2つは・・
コレクションとかもう意味不ww
0586NAME IS NULL2009/04/21(火) 23:35:02ID:???
タメになった
0587NAME IS NULL2009/04/22(水) 00:18:54ID:???
ダメになった
0588NAME IS NULL2009/04/22(水) 00:43:01ID:???
もうおしまいだ。
0589NAME IS NULL2009/04/22(水) 00:44:22ID:???
2番目の指導は問題だな
0590NAME IS NULL2009/04/22(水) 11:20:58ID:???
インストーラのコレクションはマジで大事だな。
二度と手に入らないバージョンとかあるし。
0591NAME IS NULL2009/04/22(水) 21:09:58ID:8oVKJNzM
初心者で質問です。
EMCAでDatabase Controlをセットアップしているのですが、
SYSのパスワードが分かりません
Oracle11gのインストール時にデータベースは作成しませんでした。

0592NAME IS NULL2009/04/22(水) 21:12:23ID:???
>>591
( ゚д゚)

(゚д゚)
0593NAME IS NULL2009/04/22(水) 21:53:55ID:???
>>591
データベースは作成しませんでした → SYSのパスワードが分かりません
0594NAME IS NULL2009/04/22(水) 22:12:17ID:8oVKJNzM
データベースを作成しないとSYSのパスワードは作成されないでしょうか?
ソフトウェアのインストールのみ行ったのですが、そこが問題だったのでしょうか?
0595NAME IS NULL2009/04/22(水) 22:27:50ID:???
データベースをWebベースのGUIでコントロールするEMをコンフィグするのがemcaです。
データベースがないのにemcaを行う意味が分かりません。
0596NAME IS NULL2009/04/22(水) 22:30:35ID:???
Oracle 11g です。
RMANを使ってバックアップ→リストアを行おうとして失敗しました。
コントロールファイルはリストアでき、表領域はリストア出来ませんでした。

んで、制御ファイルを再構築しDBをオープンし復旧できたと思っておりました。
下手に壊してしまう前にエクスポートでデータを取っておこうと思い
エクスポートを実行した所 「ORA-25153:一時表領域が空です。」と出ます。
復旧できてませんでした。

select * from v$TEMPFILE で確認したところ何も出てきません。

今まで一時表領域に割り当てられていたTEMP01.DBFは存在するのですが
[すでに存在するTEMP01.DBFを一時表領域に割り当てる] ような事は出来ますでしょうか?

ググると一時表領域の再作成や追加ばっかり出てきて、すでにあるファイルに割り当てる
様なのは見つけられませんでした。

こういう場合はTEMP01.DBFを削除して再作成すべきなのでしょうか?

オラクルは何度も使ったことはあるのですが、構築や保守の作業は初めてで
四苦八苦しております・・・。

よろしくお願いします。
0597NAME IS NULL2009/04/22(水) 22:31:09ID:???
超新星現るw
ゆとりの多い世の中やね。
05985972009/04/22(水) 22:35:20ID:???
超新星は>>596のことじゃないからな。
とりあえず一時表領域は再作成しとけ。
元の名前に戻したかったら、別名で作成→元のを削除→元の名前で作成→別名のを削除、でOK
0599NAME IS NULL2009/04/22(水) 22:39:35ID:???
一時表領域だったらデータも入ってないんだし、
create tablespace ... reuse でいいんじゃないのかなー

0600NAME IS NULL2009/04/22(水) 23:06:10ID:???
>>598 >>599
598さんのやり方で試してみます。

DBが起動してる状態でTEMP01.DBFが削除できれば
リネーム考えずに一発で作れそうかなぁとか考えておりますw

ありがとうございました!
06015822009/04/23(木) 07:21:41ID:???
仕事でむしゃくしゃしてやった。
酔っ払っていろいろ書いた。後悔はしていない。
0602NAME IS NULL2009/04/23(木) 08:13:19ID:???
反省はしとけ
0603NAME IS NULL2009/04/23(木) 10:00:23ID:???
>>601
あんたは間違ってない。大丈夫だ。
0604NAME IS NULL2009/04/23(木) 21:11:49ID:6YaSPAG4
公園で裸になったりもするな
0605NAME IS NULL2009/04/24(金) 18:49:27ID:7Do46R/a
1つ質問させて下さい。
あるユーザがテーブルに更新を掛けていてそのテーブルを参照されたくない場合、
トランザクションが完了するまでselect文をロックするといった設定は可能なのでしょうか。

もし可能であればその設定の方法と解除の仕方を教えていただけませんでしょうか。
0606NAME IS NULL2009/04/24(金) 20:35:44ID:???
他マシンでのリカバリテストをしようと思うんですが
Oracleのバージョン、ディレクトリ構造、SID等が全て一緒だけど
OSが微妙に違う(Windows2003EE(MSCE)→2003SE)場合の
リカバリ時、何か気をつけることがありますか?
DBIDくらいかなと思っているのですが。


元DBのコールドバックアップをコピーしてきて
先DB上でのリカバリです。
0607NAME IS NULL2009/04/24(金) 20:48:23ID:???
DBIDなんて、同じマシンのときしか影響しないんじゃなかったかな。
0608NAME IS NULL2009/04/24(金) 21:56:49ID:???
>>605
2人目に見せたくないのは、
更新していないレコードを含む全レコードなの?
更新中のレコードだけなの?

後者なら、1人目も2人目も
SELECT ナントカ FOR UPDATE NOWAIT
で大丈夫だと思うんだけど。

あと、前者なら、1人目が
UPDATE テーブル名 SET キー=キー
を最初にかましておいてから、
SELECT ナントカ FOR UPDATE NOWAIT
で本筋の処理に入るのかな。

酔っ払っているし、
ORACLE起動したくねーから、よくわかんね。
0609NAME IS NULL2009/04/24(金) 22:40:58ID:???
>>606

窓だったら大丈夫じゃね?
注意する点としたら、oradim使ってインスタンス(サービス)作る所ぐらいか?
DBIDも同じで上がるよ。
0610NAME IS NULL2009/04/24(金) 23:14:16ID:???
>605

>>608の言うことを試してみればいいよ。
ForUpdateならDML扱いだから、取得しようとする行が先客によってロックかけられていたら、
自分のSELECTは先客がロック解除するまで結果が返ってこない。
0611NAME IS NULL2009/04/25(土) 00:07:40ID:f+YC/agg
>>608のとおりであれば
返ってこないというか即エラーだな
0612NAME IS NULL2009/04/25(土) 00:19:58ID:???
試せばすぐわかることだ。

エラーだったか、砂時計で待ちになったか忘れたけど、こんなことはマルチユーザのシステムでは考慮するのは常識だし
うまくいってる既存のシステム真似ればよいだけの話。
0613NAME IS NULL2009/04/25(土) 00:38:48ID:???
>605 です

現状、単純な処理のクエリーが戻ってこないという事が頻繁に発生しておりまして
SQLトレースからデットロックが発生しているUPDATE文までは発見できたのですが・・

クエリーが戻ってこない現象がselect文で発生しているため、ロックとクエリーが
戻ってこない現象は関連していないと考えていました。

完全に手詰まり状態でしたが、ご回答して頂いた皆様ありがとうございました。
0614NAME IS NULL2009/04/25(土) 00:45:21ID:???
>613
そりゃ、完全に設計ミスだよ。
自分が設計したのなら、大いに反省すべきだし、
他人が設計したのならそいつに責任全部押し付けてもOKなくらい基本的かつ重要な事。
普通の中規模以上のシステムの設計書ならロックについてなんらか書かれているはず。
0615NAME IS NULL2009/04/25(土) 00:46:45ID:f+YC/agg
つーかデッドロックじゃなくてただのロックだろ。
デッドロックならどっちかのトランザクションにエラーが返る。
0616NAME IS NULL2009/04/25(土) 01:02:21ID:uRjQFxsB
>>613
デッドロックとは何かを勉強してね。


>クエリーが戻ってこない現象がselect文で発生しているため
単に処理が重いんじゃないのか?
StatsPackとかSQL詳細レポートとか分析してみたか?
0617NAME IS NULL2009/04/25(土) 01:16:53ID:???
アラートログに同様のデットロックが複数回発生しておりました。
ORA-00060:Deadlock detected.

すべてのデットロックは1つのUPDATE文が原因です。

ご指摘の通りまったくもって勉強不足でした。出直してきます。
0618NAME IS NULL2009/04/25(土) 01:49:03ID:v/emdwre
>>366
巨人の育成って坂本みたいな小物や数年でいなくなりそうな中継ぎのこと?

中日は川上岩瀬福留と超一流を育てた実績があるのよ。
残念だけど巨人にこいつら以上の選手を育てる可能性は皆無なのよ。
0619NAME IS NULL2009/04/25(土) 01:51:10ID:???
select for updateでnowaitつけずに悲観ロックで設計してんじゃね?
ちなみに今某富士〇が設計しているアプリがあるんだが、そいつが
悲観ロック使っていやがる。
こんなんでパフォーマンス出せという方が無理だろ。
0620NAME IS NULL2009/04/25(土) 02:27:11ID:???
>619
それだけの文章からはパフォーマンスが出せない理由は読み取れないだろ
ロックが致命的なボトルネックとなっているなら指摘して直させればいいし。
設計が絶対ならロック以外のところは可能な限りのパフォーマンスを出しているエビデンスを提出すればいい。
0621NAME IS NULL2009/04/25(土) 04:28:13ID:???
勿論こんなアホなロジックのアプリ作ってんじゃねぇって指摘してるぜ。
だが奴らは取りあえず納品さえすましちまえばいいってスタンスだから、
全く聞く耳もたねぇけどな。
とりあえず統合テストで問題点浮き彫りにして、直させるつもり。
0622NAME IS NULL2009/04/25(土) 07:40:43ID:???
>>605>>613>>617
アレ?質問の内容が変わったよね?
焦点がぼんやりしてるような気がする。
どれか1つについて優先して解決したい旨を示して、質問してね。
個人的には一歩一歩前進すべきだと思う。
いきなりdを質問されても、ズレた回答しちゃうからさ。

a:現在発生したデッドロックを解除したいが方法が分からないので知りたい
b:デッドロックを解除しても、SELECT文がまだ遅いので、SELECT文を見直したい
c:今回デッドロックが発生した原因を確定したい
d:将来的にデッドロックが発生しないように修正したい
0623NAME IS NULL2009/04/25(土) 08:05:57ID:???
aよりcが先だろ、と思うかもしれないけど、
ORA-00060が発生した日時には、
トレースファイルも出ているので、ちょっと目を通せば、
cの大体の目星についてピンと来る事が多いです。
0624NAME IS NULL2009/04/25(土) 16:54:12ID:???
>>609
試してきますた。
DBIDのセットが必要でした。後は想定通りの手順で
全く問題なかったお。
0625NAME IS NULL2009/04/26(日) 05:12:00ID:???
テーブルが分析済みかどうかって、何見ればわかるんだっけ?
あと分析中ってselectとかinsertとかやっちゃっても大丈夫?
0626NAME IS NULL2009/04/26(日) 06:27:11ID:???
>>625
xxx_tablesのlast_anaryzedを確認
分析中のsql実行も問題ないけど大量insertしたりしたら
折角の分析結果が 以下略
06276252009/04/26(日) 06:55:00ID:???
>>626
ありがとう。
INSERTとかもちょっとだけしかしませんよ。ちょっとだけ。先っぽだけならセーフ。
0628NAME IS NULL2009/04/26(日) 23:03:15ID:???
>>627
何かエロいな。
0629NAME IS NULL2009/04/27(月) 15:56:03ID: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割程度しか改善されなかった
表を分析させたらむしろ遅くなったという。
0630NAME IS NULL2009/04/27(月) 23:56:11ID:UtcGIzOX
>>629
count は単純にレコード件数を知りたいだけか?
であれば、count(*) の方が良い。

hoge に not null 制約を付けてないで、count(hoge) をやると、テーブルフルスキャンが発生する可能性大。
0631NAME IS NULL2009/04/27(月) 23:57:36ID:UtcGIzOX
それか、マテリアライズド・ビューを使えば瞬時に終わるけどな。
0632NAME IS NULL2009/04/28(火) 01:48:05ID:???
>>629
ハード更改
0633NAME IS NULL2009/04/28(火) 05:41:22ID:???
>>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;
0634NAME IS NULL2009/04/28(火) 14:23:57ID:VWUlZDrL
インデックスってみんなどんな名前にしてる?
06356292009/04/28(火) 14:52:31ID:???
>>633
SELECT MAX(hoge) FROM unko;
SELECT COUNT(*), MAX(piyo),MIN(piyo) FROM unko;
の2行に分けたら一瞬でおわるようになりました。

なんか、Oracleってあんまり賢くないんだね。これから気をつけます。
0636NAME IS NULL2009/04/28(火) 15:16:22ID:???
Oracleが賢いと言うつもりはないけど、
最初のクエリを一瞬で処理できる製品は見たことないです
0637NAME IS NULL2009/04/28(火) 15:19:02ID:???
>SELECT COUNT(*)
こそっと書き換えてるじゃねぇかw
これが原因だろw
06386292009/04/28(火) 15:59:39ID:???
>>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) の組み合わせが遅いのは意外だった。
06396292009/04/28(火) 16:02:08ID:???
>>636
MySQLだと一瞬なのですわ。
まあ内部で常に個数、最大、最小、平均などを持ってるらしいから
こういうのには強いのかも
0640NAME IS NULL2009/04/28(火) 19:45:17ID:???
>>639
おぬし、あんまり賢くないな。
そこでマテビューですよ。
0641NAME IS NULL2009/04/28(火) 20:38:37ID:???
内部で勝手にそんなもん持ってたら
更新系のレスポンスが最悪なんじゃね?
無料のDBMSをまともに使う気がないから知らんが。
0642NAME IS NULL2009/04/28(火) 22:10:13ID:???
MySQLのMyISAMなら件数持ってるからCOUNT(*)は速いけど
COUNT(hoge)はhogeが主キーでない限りだめだった気がする。
MIN、MAXはほかの製品と同じ。

>>639 はたぶんクエリキャッシュにヒットしたんだと思うよ
二回目以降は一瞬。
0643NAME IS NULL2009/04/28(火) 22:28:37ID:???
俺流インデックスの命名法

プライマリキーインデックス:PK_テーブル名
その他のインデックス:IDX1_テーブル名、IDX2_テーブル名、IDX3_テーブル名

テーブル名はできるだけ20バイト以内にして末尾にTBLを付ける。
PRODUCTTBLとか、そんな感じ。
テーブル名を「T_ナントカ」、インデックスを「I_ナントカ」とする流儀もあるようだけど、
俺には馴染めなかった。
0644NAME IS NULL2009/04/28(火) 22:29:38ID:???
>>639伝説www
0645NAME IS NULL2009/04/28(火) 22:42:11ID:???
命名基準は客先によって歴史的な文化があるから
慣れるまで抵抗あるんだよな。
常に俺ならこうする・・みたいな葛藤と闘いつつも、
でも、知らぬ間に馴染んでいってる。

ところが汎用機の文化をそのまま取り入れたような標準化には
いつまで経っても馴染めないね。。
8文字maxでイミフな記号、連番の羅列とか。。大企業ほど多い
0646NAME IS NULL2009/04/28(火) 22:52:52ID:???
デモとか研究とかじゃなく、
運用中の実データで扱ったテーブルの中で
過去最大のレコード数ってどれぐらい?

俺、370万行。
0647NAME IS NULL2009/04/28(火) 22:53:38ID:???
>その他のインデックス:IDX1_テーブル名、IDX2_テーブル名、IDX3_テーブル名
カラムインデックスなら、カラム名もつけるのか?
0648NAME IS NULL2009/04/28(火) 22:54:44ID:???
テーブル:T_   とらんざくしょん
マスタ:M_     ますた
ビュー:V_     びゅー
ストアド:P_    PLSQL
主キー:PK_   ぷらいまりきー
索引:IX_     いんでっくす

こんな感じのが大半だな。テーブル名が連番なのもあるが
それはそれで慣れたら開発の入力がめちゃ速くてラクだ。

論外なのは日本語使ったテーブル名。効率悪いわ気持ち悪いわ・・・
0649NAME IS NULL2009/04/28(火) 23:04:02ID:???
>>646

20億件くらい。これくらいは普通だと思う。

0650NAME IS NULL2009/04/28(火) 23:12:07ID:???
>>647
>カラムインデックスなら、カラム名もつけるのか?

カラムインデックスのとき、カラム名は付けない。
検討したけど冗長と判断した。

テーブルの定義は別途EXCELで資料化してて、
そっちのほうに、インデックスのカラムを書いてる。
そのEXCELには
CREATE TABLE文とCREATE INDEX文を
自動生成させる機能がある。
まあ10年ぐらい前から良くある話。
0651NAME IS NULL2009/04/28(火) 23:20:38ID:???
>>649
えええ。普通じゃないでしょ。
1テーブルで20億行なんだよね?
履歴というコンセプトだと仮定しても
1日に10万行発生で2千日かかるよ。

リレーショナル的に、きちんとクエリに使うるの?
0652NAME IS NULL2009/04/29(水) 01:12:20ID:???
Oracleなら億は普通じゃね?
20億でも異常だとは思えない。
06536492009/04/29(水) 01:44:09ID:???
ちょっと金融系のシステムをやるとそれくらいにはすぐなっちゃうんだな。

パーティション表は必須になるし、統計情報とか実行計画とかにもうるさくなるよ。
0654NAME IS NULL2009/04/29(水) 04:35:42ID:faefKd13
お前等は素人かよ。

レコード長がどのくらいか解らない状態で、テーブルの件数うんぬんの話をするなっての。

Oracle屋だったら、テーブルサイズで物申せ。
0655NAME IS NULL2009/04/29(水) 04:53:44ID:faefKd13
巨大なテーブルに関して、統計情報は取らないな。

初期化パラメータなりを調整してインデックスを使用した場合のコストを低くしたり、
ヒント句をつけて実行計画をコントロールするようにしてる。
0656NAME IS NULL2009/04/29(水) 10:51:50ID:???
>>652
>>653
へええ。勉強になった。ありがとう。

>>654
テーブルサイズで議論すると
BLOB次第でどうとでもなってしまうと思った。
BLOBについては俺は、あまり興味が無い。

一応聞くけど、あなたの経験した最大の
テーブルサイズは幾らですか?
俺、1500MB。BLOB列なし。370万行。
06576492009/04/29(水) 13:16:54ID:???
素直にストレージの大きさはどれくらいだったかを聞けばいいのに・・・

俺の関わったシステムは2TBくらいだったよ。36GBx80本。
レコード長としては大きくない。
0658NAME IS NULL2009/04/29(水) 21:06:36ID:???
思い出したくもないが、ストレージのサイズで言えば1本64GBで総計100TB越え、LOBなしで1テーブル30GBとか普通のDBやってたなあ・・
0659NAME IS NULL2009/05/01(金) 16:59:56ID:???
e-deliveryでzip落とせる?

ずっとInternal Server Errorなんだけど。
0660NAME IS NULL2009/05/02(土) 21:41:14ID:???
e-deliveryで
Oracle Database 10g Release 2 (10.2.0) JP Media Pack
for Microsoft Windows x64
を5/2 21:00〜から落としてるけど、特に問題は無いです。
Internal Server Errorは発生してないです。
06616592009/05/03(日) 00:02:42ID:???
今試したら問題なく落とせた。
サンクス!
0662NAME IS NULL2009/05/03(日) 10:43:01ID:blqLN5nN
64ビットのLinuxに11gをインストールしました。その後sqlplusを起動しようとすると、
ORA-12162: TNS:net service name is incorrectly specified
が出てログインできません。ユーザ名は11gをインストールする際にインストーラを起動した
ときのユーザ名です。パスワードも同じ。
Net Configuration Assistantというのを使って設定をしないとだめなのでしょうか?
どうかよろしくお願いします。

0663NAME IS NULL2009/05/03(日) 10:45:05ID:???
sqlplus "/ as sysdba"

でローカル接続できない?
これだとリスナ関係ない
0664NAME IS NULL2009/05/03(日) 10:54:22ID:???
04/29 に EBS の新リリースが出たから ( 12.1.1 ), こぞって落としに来てるんだと思う.
一通り落として 50GB 程度あるし.
US 側の E-Delivery でしかまだ公開してなくて, 大体 US の昼前から夕方にかけて
の時間帯 ( 東部か西部かとか面倒なこと聞くなよ w ) に激烈に重いのは多分これ.
日本時間の 04/30〜05/02 あたりまでは結構 500 出てた.
04/30 から映画観つつ落とし続けてるけどまだ揃わん ...
0665NAME IS NULL2009/05/03(日) 11:07:32ID:blqLN5nN
>>663
ありがとうございます。
それでやったのですが、同じようにORA-12162がでてログインできませんでした。
netcaで設定しようとしたのですが、その設定もインストール時に終わっていたようです。
一つ気になるのは、インストールを普段のユーザでやったことです。Oracleという名前の
ユーザも作成してないし。これが問題でしょうか?
0666NAME IS NULL2009/05/03(日) 12:08:26ID:???
ファイルアクセスは?
umaskの設定してないとか?
Oracleユーザの$HOMEにある.bash_profileに下記内容を追加
umask 022
0667NAME IS NULL2009/05/03(日) 13:38:38ID:???
なにもしてなきゃ、umaskは022だろ。
>ユーザも作成してないし
ユーザ名は何でも良いけど、そのユーザに対して、
インストールグループ(ex.oinstall)をプライマリとして、
DBAグループ(ex.dba)をセカンダリとして、
属させないとダメだよ?
0668NAME IS NULL2009/05/03(日) 16:53:52ID:???
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
0669NAME IS NULL2009/05/03(日) 20:43:31ID:???
>>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
0670NAME IS NULL2009/05/03(日) 21:03:19ID:blqLN5nN
665です。ありがとうございます。
色々いじってるうちになんだか怪しくなってきたので、OSのインストールから再度やり直してみます。
668と669に書いてもらったのは参考にさせてもらいます。ありがとうス。
0671NAME IS NULL2009/05/03(日) 21:20:48ID:???
OSからかよwwww
0672NAME IS NULL2009/05/04(月) 17:49:28ID:uyHZ9lk2
11gで、文字コードがAL32UTF8なDBにJDBCでアクセスした場合、
Java上の文字列のコードポイントがそのままDBに入る、
すなわちコードポイントの変換は一切行われず、よって文字化けもしないと
考えていいのでしょうか?

また、OracleはNFD正規化文字に対応しているのでしょうか?

よろしくお願いします。
0673NAME IS NULL2009/05/04(月) 18:43:29ID:???
>>672
unicodeとutf8の変換は発生するが基本的にAL32UTF8が推奨。
0674NAME IS NULL2009/05/04(月) 18:49:52ID:???
推奨って誰の?理由は?
0675NAME IS NULL2009/05/04(月) 21:24:27ID:???
DBのチューニング本っていうとこれだっていうのが
あれば教えてください。
0676NAME IS NULL2009/05/04(月) 23:09:26ID:uyHZ9lk2
>>675
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05743-02/toc.htm
0677NAME IS NULL2009/05/05(火) 23:58:26ID:hdZ976TQ
665です。
OSのインストールからやり直しました。VmwareをインストールしてLinuxをインストールして、
Oracleをインストールしました。でもやっぱりORACLE_SIDが設定されてません。
これはどこで設定し、どういう値になるべきなのでしょうか?
Oracleのインストールは668を参考にしてやりました。
よろしくお願いします。
0678NAME IS NULL2009/05/06(水) 00:27:20ID:???
>>677

ORACLE_SIDは普通に環境変数で設定します。
バイナリインストール時にデータベース作成を選んでいたのなら、
そこで指定した値を自分で環境変数に書き込みます。
0679NAME IS NULL2009/05/06(水) 00:28:57ID:/9mrt7ht
>>677
バイナリインストール時にデータベース作成をしてませんでした。
データベースを作成しなくてはだめですか?
0680NAME IS NULL2009/05/06(水) 00:57:24ID:???
長引きそう
LinuxでOracleを動かすためには、
以下の環境変数を正しく設定する必要があります

ORACLE_BASE
ORACLE_HOME
ORACLE_SID
ORA_NLS10
NLS_LANG
PATH
LD_LIBRARY_PATH

あなたが今から作りたいデータベースの名前を決めて
それをORACLE_SIDに設定してください
0681NAME IS NULL2009/05/06(水) 01:09:49ID:???
>>677
そんなところで躓くようなら、OSのこととか、もっと基礎を勉強してからVMにオラクルとかをやるべき。
どうしてもオラクルに触りたいならまずWindowsからにするとか。
0682NAME IS NULL2009/05/06(水) 02:06:28ID:???
>>680

ORA_NLS10 と NLS_LANG は必須ではないな。
0683NAME IS NULL2009/05/06(水) 13:46:28ID:???
Oracle10G DBサーバーで、OSはUNIX(AIX)。
クライアントはWindowsXP

DBサーバー上にある外部実行ファイルを、クライアント側から起動かけたいんですけど
「dbms_schedulerパッケージ」を使用すれば可能でしょうか?
0684NAME IS NULL2009/05/06(水) 14:48:00ID:???
rshとか。
さもなくば、RPCとか。
そういう話ではないん?
0685NAME IS NULL2009/05/06(水) 15:02:00ID:???
>>683
684も似たような方法を言ってるけど、telnetでもsshでも、お好きな方法でどうぞ。
的外れとか言うなら、前提条件をしっかり書くべし!
0686NAME IS NULL2009/05/06(水) 15:21:19ID:???
>>683
ttp://www.oracle.co.jp/forum/message.jspa?messageID=2020251
0687NAME IS NULL2009/05/06(水) 15:42:24ID:???
dbms_schedulerって基本使ったことないけど、そんなに便利なものなん?
>>686の議論でも、「cronでやれや」って出てこないのが不思議w
他のサーバとの連携とか込み入ってくれば、JP1などを使ったりするだろうし。
0688NAME IS NULL2009/05/06(水) 16:46:21ID:???
>>671
経験無い?何度かあちこち弄ってて、
何がおかしいのかわからなくなってOSからやり直したことあるからな。。

最近はOSからやり直すことは無いが、スナップショットはちょくちょく使う。 
0689NAME IS NULL2009/05/06(水) 16:56:44ID:???
仕事だと、環境設定からすべて記録するから、再インストールはありえない。
自宅だと、かまわないけど原因を究明するのがスキルアップにつながるからできるだけ回避。
EBSやらなにやら複合で入れている場合はパッチでバグになってループする可能性あるからなんともいえないが、
OracleDB単体なら再インストールするひつようはないと思う。
0690NAME IS NULL2009/05/06(水) 17:07:17ID:???
すごいね。いきなり Oracle スレ急上昇。
でも学習はいいだろうけど運用はかなり費用がかかるんでしょ?
最近、こういう費用も厳しいんですよね。
なにせ会社で Vista は一台もなしだし。アップするとイモずる式に M$ 関係にライセンス料更新とか発生してしまって。勘弁して欲しい。
なにせ未だ Access 2000 現役だからなぁ。
0691NAME IS NULL2009/05/06(水) 20:50:32ID:???
>>688
やる前にバックアップを採っておくのは当たり前だから、入れ直すとか全く考えない、ありえない。
特に大型機のUnixなんかだと、OSのインストール(HBAとかストレージなんかのミドルも含めて)は、別のSEがやることが多いし。
0692NAME IS NULL2009/05/07(木) 19:41:05ID:rgwTFvO+
Oracle初心者ですが、質問です。
OracleにはDB2のコントロールセンターのようなデータを手軽に挿入できるツールはあるのでしょうか?
データの追加はSQL Plusで地道に挿入するしかないのでしょうか?
教えてください!
0693NAME IS NULL2009/05/07(木) 21:14:27ID:???
>>692
Access
0694NAME IS NULL2009/05/07(木) 21:19:41ID:???
ある。
0695NAME IS NULL2009/05/07(木) 21:29:20ID:rgwTFvO+
>>694
どのツールを使えば出来るのですか?
0696NAME IS NULL2009/05/07(木) 21:45:31ID:???
>>695
CSE
SQLEDIT
0697NAME IS NULL2009/05/07(木) 22:59:05ID:???
SQL*Loader も覚えれば楽だよ。
0698NAME IS NULL2009/05/09(土) 03:01:35ID:JoxlLn6y
Linux版(64ビット)のオラクルをインストールしたのですが、sqlplusのコマンドを実行すると、
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
が出ます。
プロセスを見るとOracle関連のプロセスが起動してないのですが、Oracleを起動させるには
なにかのコマンドが必要なのでしょうか?
0699NAME IS NULL2009/05/09(土) 03:44:33ID:???
SQL> startup
0700NAME IS NULL2009/05/09(土) 09:40:51ID:JoxlLn6y
dboraというスタートアップスクリプトを書かないと駄目なんでしょうか?
0701NAME IS NULL2009/05/09(土) 12:20:35ID:???
>>698
基礎知識を学んでから出なおしてきてください。
0702NAME IS NULL2009/05/09(土) 15:33:21ID:2Qq3YQMD
オラクルとSQLサーバーの決定的なちがいは何でしょうか
0703NAME IS NULL2009/05/09(土) 15:35:49ID:???
>>702
オラクルは犬で
マイクロソフトはイルカ
0704NAME IS NULL2009/05/09(土) 18:26:27ID:???
>>702
Windows以外のOSをサポートしているか否か
0705NAME IS NULL2009/05/09(土) 20:19:07ID:???
>>700
だめじゃないです。
OSの起動と同時にインスタンスやリスナーを起動したい。
OSの終了と同時にインスタンスを終了したい。
なら用意する必要があります。

実際のところOS自体を落すことってほとんどないでしょ。
0706NAME IS NULL2009/05/09(土) 21:21:46ID:???
>>705
無能は放置せよ。
0707NAME IS NULL2009/05/09(土) 21:26:32ID:???
>>706
お前今から放置されるぞ?大丈夫なのか?
0708NAME IS NULL2009/05/09(土) 21:57:37ID:???
矛盾の意味を知ってるかい?
0709NAME IS NULL2009/05/10(日) 00:43:07ID:???
そんな質問は辞書サイトで解決
0710NAME IS NULL2009/05/10(日) 01:05:41ID:???
つまり、ちょっと調べればわかることを聞くなってことだよな。
0711NAME IS NULL2009/05/10(日) 04:20:02ID:???
>>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とは何かとそれぞれの関係をまずつかむこと。
0712NAME IS NULL2009/05/11(月) 00:33:33ID:???
免許持ってないヤツから「試しに車に乗ってみたんですが」
とか質問されるF1ドライバーを見ている感じだな。
0713NAME IS NULL2009/05/11(月) 14:51:48ID:???
Oracleのトリガー内で、
利用アプリケーションにイベント通知は可能なのでしょうか?

アプリケーション側でフラグに該当するテーブルを監視するというやり方でなく、
イベントを通知するというやり方がわかりません。
0714NAME IS NULL2009/05/11(月) 23:30:06ID:???
Advanced Queuing とかは?
0715NAME IS NULL2009/05/12(火) 17:49:36ID:???
Oracle 10gで質問です。

select * from table1
where field1='VALUE'

とするとインデックスを参照しますが

select * from table1
where field1=SYS_CONTEXT('NAMESPACE','PARAMTER')

としたとき、FULLスキャンになります。
この条件をビューの定義に含めたいのですが、
うまくインデックスを使うように書くことはできませんか?

よろしくお願いします。
0716NAME IS NULL2009/05/12(火) 19:03:56ID:???
>>715
カラムの中身とオプティマイザ次第だろ。
どうしても索引使いたければヒントで固定。
0717NAME IS NULL2009/05/12(火) 22:22:08ID:0DEmvHy+
SQLチューニング・アドバイザーの使用例をまとめた資料を作成しているのですが、質問です。
以下の2つのテーブルに対して、なるべく付加の高いSQL文を発行したいです。
どのようSQL文を発行したら良いでしょうか?どなたか教えてください

表A
列a、列b、列c(表Bのa列を参照)、列d

B表
列a、列b
0718NAME IS NULL2009/05/12(火) 22:41:39ID:???
>>717
select * from A,B
0719NAME IS NULL2009/05/12(火) 22:55:31ID:0DEmvHy+
なるべくデータを多く参照すればよいということですかね?
0720NAME IS NULL2009/05/13(水) 21:52:27ID:???
Oracle11gでエンタープライズマネージャーは入ってません。

Database Configration Managerからデータベース作成時に設定した
初期パラメータの メモリー・サイズ(SGAおよびPGA) の値を確認する方法はありますか?

宜しくお願いします。
0721NAME IS NULL2009/05/13(水) 21:56:44ID:???
>>720
お前みたいなヤツはアラート見ろ。
起動時のログに書いてあるから。
あとはちゃんと自分で調べてくれ。
0722NAME IS NULL2009/05/13(水) 22:38:25ID:???
>>721
まじ助かりました、ありがとう!
0723NAME IS NULL2009/05/14(木) 12:19:48ID:???
教えて下さい。

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は怒られるんですか?
0724NAME IS NULL2009/05/14(木) 12:45:29ID:???
集計関数の列で指定できる属性に制約あり

以上
07257232009/05/14(木) 13:01:33ID:???
>>724
回答ありがとうございます。
どこか参考になるURL有りませんか?
ぐぐっても見つけられなくて。。。
0726NAME IS NULL2009/05/15(金) 01:54:06ID:???
ついでにふと思った。
Oracleで、「なーんも考えずに、ぽちっと表を結合する」みたいなほうほうってある?

表A   表B
abc 123
def 456
ghi 789

ほしい結果

表A+B
abc123
def456
ghi789

↑は30分ぐらい考えたけど、Oracleでやる方法が思いつかん。
表の構造変えていいならupdate tab_name set 番号振り用列 = rownumで番号振って

rownumで結合して、select 文で表示させるぐらいしか思いつかん。
0727NAME IS NULL2009/05/15(金) 07:39:33ID:???
>>726
||で結果を結合したり・・
てかもうこの、くだらない一問一答嫌なんだが。
みんなしっかりマニュアル&ネットやらでしっかり調べてから聞いてくれ。
0728NAME IS NULL2009/05/15(金) 08:51:52ID:???
>>727
まともな人はOTNで聞く。
07297232009/05/15(金) 10:23:58ID:???
>>728
じゃあ、ここの住人は、まともではないってことで
0730NAME IS NULL2009/05/15(金) 10:46:42ID:???
聞いてくる方にアホゥが多すぎるんだよ・・・
0731NAME IS NULL2009/05/15(金) 20:56:17ID:shRi2iqv
会社でT5120+Oracle11gでDBサーバがあるんだけど、自分が使っているデバッグ用PC(MG13D)に入れたよりOracle11gの環境よりおそいんだけどなんでだろう(^^;)
0732NAME IS NULL2009/05/15(金) 21:17:36ID:???
Instant Client のスレってありますか?
使い物になるのか知りたいので。
0733NAME IS NULL2009/05/15(金) 21:45:15ID:???
専用スレはないな。
べつに、ふつうに使えるぞ。
0734NAME IS NULL2009/05/15(金) 22:36:14ID:???
つーか、 rownumで結合なんて、データベースの設計として間違ってるべ?
違う?

と言ってみるテスト
0735NAME IS NULL2009/05/16(土) 00:25:22ID:???
ところが素人さんに任せるととんでもないこと言い出すんだな。
入れた順に〜とか、キー値と大体合致してる〜とか。
0736NAME IS NULL2009/05/16(土) 01:23:56ID:U6sR389j
>>731

MG13Dを使用していて、且つT5120を使っているっていうことは
F社関係者?

T5120 はOracleRDBMSサーバ製品を稼動させるのには向いていない。
WebサーバやWebアプリケーションサーバの様に小さいスレッドが
多数動作する環境向きといわれている。
0737NAME IS NULL2009/05/16(土) 01:26:50ID:???
そんな、なんちゃって君にはRDBを扱う前に基本情報から勉強してこいと送り出してやりなさい。
0738NAME IS NULL2009/05/16(土) 10:19:47ID:55/kVsz3
>>736
普段はLenovo T60とサーバはML115を使ってますけどねw
デバッグはあり合わせのものなんで・・・。

UltraSPARCってDB向けだってインフラ部隊とかDB設計部隊聞いてるけど?
DBでそんなにでっかいスレッド動かないし、要求が多いから複数スレッド動くし・・・。
事実T5440(SEVPHSF1Z)だと爆速なんですけどね。
HP DL580 G5(487363-291)より早いですし・・・。

ってかDBだけど使用目的はWebアプリケーションサーバなんですけどね(^^;)

Solarisよくわからんから今回は自分でサーバみてないんだよね。

0739NAME IS NULL2009/05/16(土) 11:02:27ID:???
>>738
真性の馬鹿だな。
無能DB設計部隊共々勉強しなおしてこい。
0740NAME IS NULL2009/05/16(土) 11:29:12ID:???
Fの技術者は異様にレベル低いからな。しょうがない。

どうせ設定もわからず適当にインストールして遅いだの速いだの言ってるんだろう。
0741NAME IS NULL2009/05/16(土) 12:05:12ID:55/kVsz3
>>739
まぁクライアントやってるから俺はDB勉強しなくていいんだけどねw
もともと、組み込みのC技術者だしw
DB部隊は俺の5倍以上給料もらってるから勉強してもらいたいものだが・・・。
ってか、DBには問題ないとおもうけどね。
CPU使用率はみてるけどそんなにDBで処理くってるわけやないし。
ってかほとんどくってないw

>>740
うちのインフラ部隊はF社並に無能っぽいw
F社に関わりないからよくわからんけど・・・。

0742NAME IS NULL2009/05/16(土) 12:35:48ID:???
>>741
DB設計がちゃんとできてないとIOにばかりコストがかかって
CPUなんかろくろく使われないことを知ってるか?

愚痴こぼす前に、もっと勉強しろ
0743NAME IS NULL2009/05/16(土) 12:37:27ID:???
>>741
>>741
>>741
>>741
>>741
www
0744NAME IS NULL2009/05/16(土) 12:39:50ID:???
まあ、初代Niagaraは1コアの性能が低いからね(UltraSPARCIIレベルと言われてる)。
といっても、AP-DB間のコネクションを増やしてやる(当然、AP側でも考慮してやる必要があるが)とかすれば、トータルの性能を上げることは出来るだろう。
0745NAME IS NULL2009/05/16(土) 15:29:05ID:???
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の性能を比較してみては。
07467452009/05/16(土) 15:32:11ID:???
ごめん。FILE I/Oの性能は、cpで見るのが適切だ。
0747NAME IS NULL2009/05/21(木) 21:57:24ID:???
今回もプラチナクラブのDSI抽選漏れしちまったぜ。
あれ、当たった話聞いたことないが、当たったことある人いる?
0748NAME IS NULL2009/05/24(日) 22:14:59ID:???
IndexってViewにも付与できますか?
お客さんとこの環境で今試せないので
分かる方教えて下さい。
Windows 2000 Server
Oracle 8.1.7
0749NAME IS NULL2009/05/24(日) 22:35:22ID:???
ふつうのVIEWにはつけられない
VIEWが参照しているTABLEにはつけられる

MATERIALIZED VIEWならつけられる
0750NAME IS NULL2009/05/25(月) 22:17:13ID: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バイトのフィールドだけがエラーになるのかの理由と、
回避する方法がお分かりでしたら教えていただけますでしょうか。
0751NAME IS NULL2009/05/25(月) 22:30:16ID:???
本当に90文字なのかな
目に見えない文字が入ってたりして
0752NAME IS NULL2009/05/25(月) 22:46:45ID:???
ためしにカラムを大きめにして入ったデータ見てみたら
0753NAME IS NULL2009/05/25(月) 22:57:50ID:???
>>750
サポートに聞けよ
アホ
0754NAME IS NULL2009/05/25(月) 22:57:52ID:???
>>749
テーブルにつけてたら有効なんですね
サンクス
0755NAME IS NULL2009/05/26(火) 08:09:06ID:???
>>750

SQL*Loader-350エラーは必ずしもフィールド長に起因するものではない。
どちらかというとORA-600に近いものと理解した方がいい。
ロードするデータやコントロールファイルにエラーがあると、SQL*Loader-350
エラーとしてハンドリングされてしまう事がある。
よって、データ及びコントロールファイルをもう一度良くチェックすべし。
0756NAME IS NULL2009/05/26(火) 18:22:33ID:???
>>755
文字を削っていったら成功したっていう事象を無視した発言じゃね?
0757NAME IS NULL2009/05/26(火) 21:36:35ID:???
>>756

たとえばデータの最後にクオーテーションやダブルコーテンションがなければ
ならないのに、それが抜けていたらSQL*Loader-350が返ってきたりする。
文字列を削っていけば、その抜けていたデータがロードされなくて通ったりとかも
考えられるだろ?
07587502009/05/26(火) 22:32:00ID:???
>>751-757 の皆様
色々とご回答ありがとうございます。
私は別件が忙しくなって、本日は本件を全く見れていなかったのですが、
皆様のお話から判断すると、
 ・全角が3バイト以上となることは、今回のケースでは考えられない
 ・他の問題(>>755 のデータおよびコントロールファイル)を疑うべし
ということのようですね。

最初はある特定のケースで文字のバイト数が増えるのか? と混乱していたのですが、

皆様の回答からそれは無い、ということが自信が持てたので、あとは違った角度から問題解決の糸口を探っていこうと思います。
どうもありがとうございました。
0759NAME IS NULL2009/05/28(木) 21:19:16ID:???
DBはoracle8iです

SYSTEMスキーマにてスキーマAのテーブルBをマスタにしているスナップショットが調べたいのですが
dba_registered_snapshotsのownerはスナップショットの持ち主を指すんでうまく検索できません・・・

ようはマスター側のテーブルのownerとtable_nameでレプリ先のスナップショットを検索できるSQLが書きたいです

教えてくれれば幸いです

0760NAME IS NULL2009/05/28(木) 23:25:59ID:5nEvd4/b
初心者で質問なのですが、
スーパー管理者、リポジトリ管理者というのは、具体的に何が出来るユーザー(管理者)なのでしょうか?

どなたか教えてください?
0761NAME IS NULL2009/05/28(木) 23:39:29ID:???
Oracle8iでViewを作成する際、フィールドの型を変更することってできます?

元Table → View
NUMBER(10,3) → VARCHAR(15)
DATE → VARCHAR(10)

0762NAME IS NULL2009/05/28(木) 23:39:36ID:???
スーパーなことができる管理者
リポジトリなことができる管理者
0763NAME IS NULL2009/05/29(金) 02:55:04ID:???
>>760

エスパーではないが、多分OEM(10g Grid Control)の事言っているのかいな?
Super Administrator権限は文字通りOEMコンソール上において最上級の権限を持つ。
OEM用に他ユーザーを作ったり、新規のRuleを作成したり何でもできる。

Repository AdministratorはSYSMANの事を指すと思われ。
SYSMANもSuper Adminsitartor権限を持っているが、DB上においてリポジトリに関連する
DBオブジェクトは全てこのユーザーの配下に作成されている。
OEMに関連するパッチやアップグレードを行う場合、SYSMANのパスワード入力を求め
られるのはこのため。
0764NAME IS NULL2009/05/29(金) 16:28:43ID:???
シーケンスを使って1ずつ増えるプライマリキーを持つテーブルがあるのですが、
このテーブルからプライマリキーが最大の行を取得するにはどう書けばいいですか?(1文で)
0765NAME IS NULL2009/05/29(金) 17:49:13ID:???
currvalとかrownumとか副問い合わせとか
0766NAME IS NULL2009/05/30(土) 03:14:54ID:OxBqVtla
全てフリーでWindowsXPにOracle+ODBCをインストールしたいと思っています。
とりあえず「OracleXEUniv.exe」ってのを落としてきてインストールしました。
次にODBCですが、どうやらOracle Universal Installerなるものが必要なのですが、
これはフリーで手に入るのでしょうか?可能なら入手方法を教えてください。
0767NAME IS NULL2009/05/30(土) 08:57:40ID:???
ODBCドライバなら、はじめからWindowsに入ってるよ。
Oracle純正もあるけど。
0768NAME IS NULL2009/05/31(日) 19:11:41ID:6AEhynkf
create database 時に tempfile のデータファイルを複数指定するには
どのように記述すればいいでしょうか?
1つの表領域に対して複数のデータファイルを指定したいのですが・・・

WindowsServer2003のOracle11gです。
0769NAME IS NULL2009/05/31(日) 19:56:11ID:???
作ってから追加すれば。
0770NAME IS NULL2009/05/31(日) 23:09:16ID:8PhEh/zy
SYS SYSMAN SYSTEM DBSNMP の各ユーザーの読み方って何て読むんですか?
SYSは、シスユーザーとかですか?
0771NAME IS NULL2009/06/01(月) 08:14:20ID:???
>>770
自分考えろや。
ホント、大ゆとり時代だな。
0772NAME IS NULL2009/06/01(月) 20:34:39ID:tfA2VkzE
俺は、
SYS⇒シス、SYSMAN⇒シスマン、SYSTEM⇒システム、DBSNMP⇒ディービーエスエヌエムピー
って読んでるが、他にも同じ人いる?
0773NAME IS NULL2009/06/01(月) 20:48:37ID:???
まぁ同じだな
0774NAME IS NULL2009/06/01(月) 21:27:30ID:???
SYSDBA  シスデービーエー
SYSOPER  シスオパー
Ping   ピング
GUEST   グエスト
nobody  ノウボディ
0775NAME IS NULL2009/06/01(月) 21:58:19ID:???
ごめん、つっこませい
Nobody は ボぢゃなくて ノォーブァディ ってマジは現金か
0776NAME IS NULL2009/06/01(月) 22:03:52ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ     >>774
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0777NAME IS NULL2009/06/01(月) 22:26:25ID:???
ドラゴンケスト
0778NAME IS NULL2009/06/01(月) 23:57:25ID:???
>>767
教えてくださってありがとうございます。
やっと規制解除された。。
0779NAME IS NULL2009/06/02(火) 05:28:36ID:???
>>770

http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B9
0780NAME IS NULL2009/06/02(火) 22:04:34ID:VnED08o2
学生で周りに聞ける方が居ないので教えて頂たいのですが、
Database Controlの「パフォーマンス」タブの「平均アクティブ・セッション」
における(時系列に表示されている)グラフが意図するものは何なのですか?
セッションの内訳を表示しているというのは何となく分かるのですが。
縦軸の意味もよく分かりませ。(横軸は分かりますが...)

分かりにくい質問ですみません。
友達に色々質問されて、上手く説明できなく困ってます。
0781NAME IS NULL2009/06/02(火) 23:18:38ID:HF9ihThy
SQL*PLUSからは実行できるSQL文がJDBC経由で実行すると
内部エラーが発生します。


長いSQL文が原因かどうかわかりませんが
SQL文を短くすると内部エラーがでません。

なにかアドバイスが頂きたいです。

ODBC経由では実行できてJDBC経由では実行できない
経験があるかたいらっしゃいましたら教えてください。

以上です。
0782NAME IS NULL2009/06/03(水) 00:38:06ID:???
>>780
マニュアル嫁
DatabaseControlならその場でHelpも開けるから、それ見ろ。

>>781
JDBCだと上手くいかないとか、ADO.NETだと上手くいかないとか、
そういうのは経験したことある。
バインド変数の暗黙変換周りとかがクサイ。
0783NAME IS NULL2009/06/05(金) 07:37:05ID:???
内部エラー、というだけで、結構ヘコむよな。
とりあえず、最新のパッチセットリリースを適用して再現するか確認。

0784NAME IS NULL2009/06/05(金) 16:01:32ID:???
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を使用しています。宜しくお願いします。
0785NAME IS NULL2009/06/06(土) 06:18:03ID:???
俺だったら第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ステップ目(目的の処理)に進まないとか・・・
07867842009/06/08(月) 12:05:16ID:???
>>785
どちらも試してみましたが、やはり遅いままでした。

別の手法も視野にいれつつ再検討したいと思います。
ありがとうございました。
0787NAME IS NULL2009/06/09(火) 00:28:59ID:???
>>785

ナカーマ(゚∀゚)人(゚∀゚)
オイラもOracle 7育ちだよ。
とは言ってもデータベース管理�T受けさせられただけで、スナップショット
使いまくりの分散DBが最初の担当だったけどさ・・・('A`)
叩き上げで、そのあと欧州に渡り、今はアメリカ東部戦線で戦っているw
0788NAME IS NULL2009/06/12(金) 01:19:42ID:???
ORACLE XEについて質問です。
WINDOWS&C言語&XE(&PRO*C)のフリーセットでアプリケーションを
作って勉強したいと思っています。CとXEはそれぞれ無事動作したの
ですが、PRO*Cが見つからず連携できません。何か良い方法もしくは
参考になりそうなURLご存知の方はいらっしゃいますでしょうか?
ググッてもみたのですが参考になる情報は見つけられませんでした。
どうぞ宜しくお願い致します。。。
0789NAME IS NULL2009/06/12(金) 07:46:54ID:???
Pro*Cは、既に廃れつつあるテクノロジだと思っていますけど、
スレ住民の見解は、どうなんですかね。

私自身は、ストアドプログラムを書くのに際し、
PL/SQLで機能不足を感じた事は無いです。
0790NAME IS NULL2009/06/12(金) 10:53:39ID:???
Pro*CもPL/SQLももう使わんな。
0791NAME IS NULL2009/06/12(金) 14:16:21ID:???
だが、まだ使われているんだよな。
頑なに、Solaris+Oracleを使い続けているような所は、特に。
0792NAME IS NULL2009/06/12(金) 14:25:06ID:???
>788
いやいや流石に Pro*C/C++ まではタダ配りしてないってw

>>789
C (C++ でなく) で開発するなら他に選択の余地もないでしょ。
C++ や C++/CLI ならまだしも。
0793NAME IS NULL2009/06/12(金) 14:53:06ID:???
>>791
頑なって、他に選択の余地もないでしょ。
0794NAME IS NULL2009/06/12(金) 18:53:46ID:???
Oracle XEにはPro*C入ってないよ
これ豆知識
0795NAME IS NULL2009/06/12(金) 23:40:23ID:???
今から覚えるんなら素直にociにすれば?
Pro*Cみたいなプリプロセッサはハマったときのデバッグが大変だし。
0796NAME IS NULL2009/06/13(土) 08:32:24ID:???
はげど。
あんなオナニー技術
0797NAME IS NULL2009/06/13(土) 10:00:28ID:???
皆様情報ありがとうございます。
PL/SQLなら色々サンプルもありそうですね。
できればPro*Cで作りたかったのですが、
>>794さんのおっしゃるとおりでした。
確かにあまり選択の余地はなさそうです。
ociも調べてみました。これもオラクルなの
ですね。XE中にもDLLとかありましたので何
とかなりそう?ありがとうございます。>>795さん
PL/SQL、ociあたりから攻めてみます。
情報提供していただいた皆様本当にありがとう
ございます。
0798NAME IS NULL2009/06/13(土) 10:18:27ID:???
若干制約があるけど、ODBCの方が他のDBにも応用できるし、
VBやVBA、VBSなどでも同じ使い方が出来るし、最初にやるのはこっちの方がいいんじゃね?
0799NAME IS NULL2009/06/13(土) 12:46:07ID:???
>>798
クソ遅いからイヤダ
0800NAME IS NULL2009/06/13(土) 18:13:38ID:???
じゃあ、JDBCやOLEもダメかw
0801NAME IS NULL2009/06/17(水) 17:32:09ID:???
Oracle 10gを利用したアプリケーションの分析をしています。

仕様書が無いため、非常にわかりにくいアプリケーションなのですが、
基本的にDBアクセスのアプリケーションです。

分析するためにアプリケーションが発行したSQLの履歴を確認したいのですが、
確認方法はあるのでしょうか?

なにか、ヒントになるようなサイトや言葉があれば教えて頂きたいです。
0802NAME IS NULL2009/06/17(水) 18:34:55ID:???
audit を仕掛けるとか。

0803NAME IS NULL2009/06/17(水) 18:49:06ID:???
>>801
v$sqlとかv$sqlareaを定期的に採取したら?
EnterpriseManagerでも負荷の高いSQLは採取できたと思うけど。
0804NAME IS NULL2009/06/17(水) 23:41:59ID:???
>>803

この場合は負荷の高いものを知りたいのではないでしょ。
0805NAME IS NULL2009/06/18(木) 01:24:16ID:???
>>801

ファイングレイン監査。
0806NAME IS NULL2009/06/19(金) 07:04:58ID:???
ファイングレイン監査(FGA監査)は、
Enterprise Editionだけの対応らしい。

11gのTotal Recallも、
Enterprise Editionだけの対応らしい。
面白くねえ。
0807NAME IS NULL2009/06/19(金) 07:05:23ID:2pJAXRqp
>>801

以下のURLの「別セッションのSQLトレース、EVENT 10046の
SQLトレース取得手順」を参考

ttp://www.atmarkit.co.jp/fdb/rensai/orasql05/orasql05_2.html
0808NAME IS NULL2009/06/19(金) 10:22:05ID: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本体からの再インストールをすれば良いのかもしれませんが
別システムが既に稼動している為、それもできません。
正直、この状況は初めてで、困り果てています。

なにか、ヒントでも良いのでアドバイスをください。よろしくお願いします。

0809NAME IS NULL2009/06/19(金) 12:41:28ID:???
ORACLE_SID じゃないのかな。
0810NAME IS NULL2009/06/19(金) 13:21:01ID: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でした…
0811NAME IS NULL2009/06/19(金) 18:49:24ID:???
>>808
リモートデスクトップ接続で作業してる?

8.1.7は、リモートデスクトップ接続
(ターミナルサービスクライアント利用など)
では、CREATE DATABASEできないよ。
Database Configuration Assistantを使ってもダメ。
不具合だけど直さない、とかいう話だったかな。

サーバのある場所まで行って、
サーバに直接ログオン(ローカルログオン)して
作業すると大丈夫。

そこまで行けない場合、ウラワザとしては、
Database Configuration Assistantなどで
スクリプトを作っておき、そのスクリプトを、
ATコマンドで、Windowsからログオフしている時間帯に
呼び出すように仕込めば作れたような気がする。
0812NAME IS NULL2009/06/19(金) 23:11:17ID:???
RDTのコンソールセッションならいける。
08138082009/06/20(土) 01:11:57ID:???
色々アドバイスありがとうございました。
原因が判明しました…
よりによって、使用する予定のポート番号が重複していたことが
原因でした…
1523ポート使用と言っていたのに、別システムが先に無断で使用していました。
未使用の1522ポート指定でうまく作成されました。

お騒がせして申し訳ありません。

…PGのポート指定直さなきゃ…orz
0814NAME IS NULL2009/06/22(月) 21:48:38ID:???
質問失礼します。
携帯で失礼。

環境
DBサーバ win2003R
NAS win strage server2003
oracle10g

DBサーバからdbConsoleでNASにダンプを落としたいのですが、
書き込み権限のエラーが出ます。

DBサーバからNASへのwin上でのファイル作成・書き込みは出来ています。

後、ORACLEのホスト権限(?)にはアドミンのIDとPWを設定し、
ディレクトリに落としたいNASのフォルダを設定しています。


他に必要な設定はなんでしょうか?
ORACLEではなくwin側でしょうか?
足りない情報ございましたら逐一書き込みます。
よろしくお願いします。
0815NAME IS NULL2009/06/22(月) 23:09:29ID:???
ネットワークドライブをマウントすりゃいいんじゃね?
0816NAME IS NULL2009/06/23(火) 00:07:40ID:???
>>814
OracleじゃなくWinの制限。
http://support.microsoft.com/kb/124184
簡単に言うと、サービスの開始アカウントを変更(要Admin権限)し、そのアカウントで
NASにアクセスできるようにしないと駄目。
0817NAME IS NULL2009/06/23(火) 13:03:19ID:???
っていうか、Windows版Oracleの問題でもあるだろ、これ。
サービスをシステムアカウントで作ってしまうようになっているのが、おかしい。
0818NAME IS NULL2009/06/23(火) 23:18:00ID:???
俺が無知なんだろうけど、
dbConsoleでダンプを落とす、って何?

ダンプと言うとexpか、expdpの事しか
思いつかないんだよね。
Enterprise Manager(EM)をよく知らないから
駄目なんだろうかね?
0819NAME IS NULL2009/06/25(木) 00:02:14ID:???
単純にOEM(DBconsole)を使ってDataPump使うってだけだと読み取った。
ASMとかリソースマネージャとか使うと、OEMがないと不便を感じる。
0820NAME IS NULL2009/06/25(木) 02:31:26ID:???
>>814

データパンプ用のディレクトリをDB上に作る時にUNCで指定していないからじゃね?
08218142009/06/25(木) 15:09:47ID:???
遅レス済みません。
ご解答頂いた皆様、有難うございます。

結果だけ言うと分かりませんでした・・
私が派遣一辺倒で、プログラム一本環境無知なもので。。。

winのタスクでPLを起動し、ファイル転送のバッチを動かす事で解決致しました。
0822NAME IS NULL2009/06/29(月) 15:10:44ID:OhsehFKL
例えば、9→10g へバージョンアップ
移行のヒヤリングを教えて

何を聞けばいいのかすらわかんない
0823NAME IS NULL2009/06/29(月) 23:24:56ID:???
・O/S
・DBのバージョン
・テスト環境の構築
・テスト環境におけるアプリケーションのテスト期間
・アップグレードにおけるアプリケーションへの影響
・アップグレードによるSQLのパフォーマンス問題の対応方法
・バックアップ手順
・移行に際して、DB止められる時間
・移行手順の確認 (DBUA? マニュアルアップグレード?)
・移行失敗におけるリスク
・移行失敗時におけるバックアッププラン
0824NAME IS NULL2009/06/30(火) 22:23:35ID:???
>>822

(´д`)つhttp://hp.oracle.co.jp/
アップグレードに関するドキュメントも幾つかある。
0825NAME IS NULL2009/07/01(水) 00:56:16ID:???
教えてください。

OSもDBのバージョンも一緒のホストAからホストBにデータを移したいと考えています。
ホストAで
exp system/password full=y
でエクスポートしたデータをホストBに移す場合
ホストB側ではどんな器を作っておけばよいのでしょうか。

同名DBを作成する。

同じユーザーを作成する? ←このへん
表領域ファイルを作成する? ←このへん
〜をする? ←このへん

で

imp system/password full=y

を実行する。
0826NAME IS NULL2009/07/01(水) 02:33:42ID:???
>>825
バージョンが同じ場合は、物理的に移行する(データファイルその他のコピー)方が簡単。
08278252009/07/01(水) 07:44:55ID:???
>>826
ありがとうございまず。
exp/inpでの移行方も会得しておきたいと思っていますのでexp/impでの方法をご教授頂けたらありがたいです。
よろしくお願いいたします。
0828NAME IS NULL2009/07/01(水) 07:49:44ID:???
>>827

まずは日本語から勉強し直すといいよ。
0829NAME IS NULL2009/07/01(水) 09:26:42ID:???
>>828
マジで >>827 が読めないつってんの?どう読んでも
「他の遣り方なんざ訊いてねえよ。」
の婉曲な表現だろうに。

>>825
やってみりゃすぐ解るレベルなのに…
0830NAME IS NULL2009/07/01(水) 15:45:15ID:???
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の処理を含むから、
表領域の作成が重複してしまいエラーが出るけど、
それは想定の範囲ってやつで問題なし。
08318282009/07/01(水) 22:13:16ID:???
>>829

「移行方」って何?
お前の母国だろうと思われる韓国では通じるかもしれないが、ここは日本だからな。

ちなみに exp/imp はもう古い。expdp/impdp を使え。
08328252009/07/02(木) 08:36:08ID:???
>>830
ありがとうございました。
試してみます。
0833NAME IS NULL2009/07/02(木) 10:19:01ID:???
>>831
園児かお前はw
0834NAME IS NULL2009/07/02(木) 19:18:31ID:???
>>831
expdp/impdpのバグの多さ、ヒドくない?
シロートは、自ら進んで地雷踏め
っていうスパルタ教育主義?
0835NAME IS NULL2009/07/02(木) 23:44:54ID:???
>>834

普通に使っているけどね。
やっぱ早いし。
0836NAME IS NULL2009/07/03(金) 00:00:41ID:???
>>833

園児?

やはりあちらの国の言うことはさっぱりわからんな。
08378252009/07/03(金) 09:02:49ID:???
>>836
哀れだな。お前。
0838NAME IS NULL2009/07/03(金) 09:26:28ID:???
マニュアルを読めばわかるようなそんな基礎的なことも理解できないほうが哀れだが。
0839NAME IS NULL2009/07/03(金) 12:03:22ID:???
>>837
もう放っといてあげようよw
0840NAME IS NULL2009/07/03(金) 21:09:26ID:???
どっちもどっちだなw
0841NAME IS NULL2009/07/03(金) 22:20:51ID:???
そうね、Oracleなんて必要ない

だってわたしたち、
0842NAME IS NULL2009/07/03(金) 23:47:43ID:???
おもちゃ屋なんだもん
0843NAME IS NULL2009/07/04(土) 09:00:26ID:???
>>842
おもちゃは結構アイテム数あるぞ いまいちだったな
0844NAME IS NULL2009/07/04(土) 09:26:17ID:???
> exp/inpでの移行方も会得

ぷっ(笑)
0845NAME IS NULL2009/07/05(日) 00:16:13ID: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:表またはビューが存在しません。

?????????????
?   なぜでしょうか     ?
?????????????

すみませんが、どなたか、本当にすみませんが教えてください。。お願いします。。
0846NAME IS NULL2009/07/05(日) 02:07:42ID:???
>>845
select table_name from user_tables;
にTblFooはありますか?

select * from testadmin.TblFoo;
では結果が変わりますか?
0847NAME IS NULL2009/07/05(日) 02:39:40ID:???
>>845
""をつけると大文字小文字が区別される。つけないと全部大文字とみなされる。
書いてあるSQL・結果がそのとおりなら
(多分、testadminはTESTADMINだと思うが)、
create table "TblFoo" ... として作っている。
その場合、select * from "TblFoo"; としないといけない。
0848NAME IS NULL2009/07/05(日) 06:46:00ID:???
すげ。>>847は、ものすごくスキルある人だね。
0849NAME IS NULL2009/07/05(日) 10:36:40ID:???
>>846さん>>847さん、ご回答ありがとうございます。

>>847さんのおっしゃるとおりでした!
ダブルクォーテーションつけたら選択できました!
どうもありがとうございます。すごいです。本当に感動しました。
0850NAME IS NULL2009/07/05(日) 12:40:13ID:???
ダブルクォーテーションで大小文字の区別をするようになったには
いつのバージョンからだったのでしょう。うむむ覚えていない。
0851NAME IS NULL2009/07/05(日) 14:37:52ID:???
>>850
少なくとも7のときには""で大文字小文字を区別していた。
あと、""でくくると使用できる記号が増え、
空白や+-/*()等も使用できるようになる。

詳しくは「SQL言語リファレンス」の
「スキーマ・オブジェクトのネーミング規則」を参照。
0852NAME IS NULL2009/07/05(日) 15:01:26ID:???
桐スレが炎上している件
0853NAME IS NULL2009/07/07(火) 06:40:35ID:???
ORACLEと桐が無関係な件
0854NAME IS NULL2009/07/07(火) 09:19:47ID:???
Oracle8.1.5がインストールしてあるマシンに別のマシンから接続するにはOracle Clientのいくつのバージョンを入れればいいのでしょうか?
Instant Clientが対応していれば良いのですが、対応表では8.1.7としか書いていないため迷っています。
0855NAME IS NULL2009/07/07(火) 13:09:08ID:???
今時8iなんてサポート外なんだから、9i clientでもなんでも入れておけばいいんじゃない?
0856NAME IS NULL2009/07/07(火) 13:20:30ID:???
>>855
別のバージョンのClientでは動作するか心配だったのですが、動くのでしょうか?
また、公式サイトを見てみたのですがバージョンが10からしか置いてありませんでした。
0857NAME IS NULL2009/07/07(火) 14:21:13ID:???
>>856
そんなに心配なら8.1.5のクライアント入れれば?
大抵前後2世代分くらいなら接続出来るよ。
まぁいずれにしてもサポート対象外だから、
何か不具合あっても泣かないでね。
0858NAME IS NULL2009/07/07(火) 14:45:14ID:???
>>857
了解です。
8.1.5のインストールディスクを紛失してしまっている状態のため、公式からダウンロードができる10.1.0.4をインストールしてみます。
レスありがとうございました。
0859NAME IS NULL2009/07/07(火) 16:42:15ID:???
>>858
あとでもいいから 10g の開発ライセンス買うようにな。
0860NAME IS NULL2009/07/07(火) 19:37:42ID:???
>>858
ライセンスなしは茨の道だぜ。
あとクライアントの対照表がどっかにあったと思うがちゃんと調べて使ったほうが吉だぞ。
0861NAME IS NULL2009/07/07(火) 20:08:12ID:???
>>858
下記参照されたし。
ttp://selolo.blog5.fc2.com/blog-entry-14.html

後、ライセンス関連で微妙な話題だけど、
Oracle-XEのクライアントってあるじゃん?
あれって10gR2クライアント相当で使えないかな?
0862NAME IS NULL2009/07/07(火) 20:37:50ID:???
しかし8.1.5ってのは古いね。

8.1.5は回避不能な不具合多数のため、
8.1.6か8.1.7に更新しましょう、というか
8.1.7にしてください、ぜひおながいします。

というORACLE社のアナウンスがあった記憶がある。
7〜8年前(2001年〜2002年ぐらい)。
0863NAME IS NULL2009/07/07(火) 23:22:20ID:???
oracleがどれだけメモリ使っているか知る方法を教えてください。

特に高負荷でもないに、メモリがなくなります(memfreeがすくない)。
topでみてもorcale以外メモリを沢山使っているプロセスはないんですが。
0864NAME IS NULL2009/07/08(水) 00:04:59ID:???
何を言ってるのかよくわからんが
もしLinuxならmemfreeが少ないのは普通。
0865NAME IS NULL2009/07/08(水) 00:14:58ID:???
vmstat のfreeです。 swapout(so)も発生してますので、間違いなくメモリ不足になっていると思います。
0866NAME IS NULL2009/07/08(水) 00:20:38ID:???
メモリ買え
0867NAME IS NULL2009/07/08(水) 00:26:52ID:???
freeだけじゃなくてcacheも見てるか。
0868NAME IS NULL2009/07/08(水) 01:02:46ID:???
cacheはほとんど変わってないど、そのかわりbuffは激減。
0869NAME IS NULL2009/07/08(水) 01:09:11ID:???
>>865
Linuxは、メモリに余裕がある場合でも、
使われていないページをswapに追い出して
キャッシュ用のスペースを作ろうとするので、
少量のsoは常に発生しうる。

つーかtop見たなら、RSSやったかRESやったか言うのが
使用メモリ量だから、それ見れ。
0870NAME IS NULL2009/07/08(水) 03:26:01ID:???
>>858

10gクライアントはデフォルトでは8iには繋がらないようになっていたはず。
パッチ充てればいいけど。
面倒だから9iクライアント入れておけ。
0871NAME IS NULL2009/07/08(水) 03:32:26ID:???
>>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だったけか?
0872NAME IS NULL2009/07/08(水) 09:43:28ID:???
>>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のパッチのことを指すのでしょうか?
08738722009/07/08(水) 09:44:20ID:???
最後の行は870さんがいうパッチとは、の間違いでした。 ごめんなさい。
0874NAME IS NULL2009/07/08(水) 12:19:45ID:???
>>872
あとでDB買うからとかじゃなくて、クライアントインストールした時点でそのライセンスは購入な。
0875NAME IS NULL2009/07/08(水) 21:52:18ID:???
>>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が言っているのは、おそらく、あなたには無関係。
0876NAME IS NULL2009/07/14(火) 06:06:45ID:CXaxA+Js
細かい話ですが質問させてください。
旧サーバのOracle 9i から新サーバのOracle 10g にDBリンクを張って、
9i上のテーブル更新を10gに反映させようとしています。
マニュアルには「DBリンクを共有することによって、異なるセッション間でも
セットワーク接続が共有される」とあるのですが、
共有されるネットワーク接続とは具体的に何を指しているのでしょうか?

共有リンクにするメリット・デメリットはそれ以外にもあるのでしょうか?
0877NAME IS NULL2009/07/14(火) 08:02:12ID:???
>>876
ttp://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19224-02/ds_concepts.htm

共有リンクは、通常のデータベース・リンクと次の点で異なります。
・データベース・リンクを介して同じスキーマ・オブジェクトにアクセスする
異なるユーザーの間で、ネットワーク接続を共有できます。

・ユーザーが特定のサーバー・プロセスからリモート・サーバーに接続を
確立するときに、そのプロセスからリモート・サーバーに対してすでに
確立されている接続を再利用できます。
接続を再利用するには、その接続が同じサーバー・プロセスから
同じデータベース・リンクを使用して確立されている必要があります。
セッションは異なっていてもかまいません。
非共有のデータベース・リンクでは、複数のセッション間で接続が
共有されることはありません。

・共有サーバー構成で共有データベース・リンクを使用すると、
ネットワーク接続はローカル・サーバーの共有サーバー・プロセスの
外部で直接に確立されます。ローカル共有サーバーでの非共有の
データベース・リンクでは、この接続はローカル・ディスパッチャを
介して確立されるため、ローカル・ディスパッチャのための
コンテキスト・スイッチングが発生し、データがディスパッチャを
経由することになります。
0878NAME IS NULL2009/07/14(火) 08:20:15ID:???
共有されるネットワーク接続

俺なりの見解ですが、データベースリンク作成時に利用した
ID、パスワードを用いるCONNECTが共有されると理解してます。

多数の利用者(100人とか)がデータベースリンクを利用する場合、
非共有データベースリンクでは、
データベースリンク作成時に設定したID、パスワードを用いて、
SQLを実行する度にリモートデータベースにCONNECT
していたので、メモリリソースの無駄遣い、CPU時間の無駄遣い
と考えたのだろうと理解しています。
0879NAME IS NULL2009/07/16(木) 09:52:49ID:???
たいした顧客情報量でもないのにオラクル使ってる中小企業の社長さんは無知なの?
0880NAME IS NULL2009/07/16(木) 14:02:18ID:???
>>879
世の中は二者択一。自分で作るか作ってもらうか。
作れないなら高くても依頼するしかないだろう。
DBの種類もまかせるしか無いだろう。
0881NAME IS NULL2009/07/16(木) 19:17:30ID:???
>>879
逆に誰もが知ってる大企業の取締役が
Excelでヒイヒイ言いながら損益の資料を作ったりしています。
損益に数千万円の誤差が出た、なんて逸話があります。
その逸話の企業は、Excelで損益計算するのをやめたそうです。
0882NAME IS NULL2009/07/16(木) 20:42:13ID:???
>>879
みんなが知ってるN○○と無名の小企業
どっちにシステム作ってもらっても似たり寄ったりなのに
どちらが選ばれるかは自明だろ?
そういうことだよ
0883NAME IS NULL2009/07/16(木) 21:57:55ID:???
いくらエクセルでも誤差は無いでしょ。
誤入力ならともかく
0884NAME IS NULL2009/07/16(木) 23:16:10ID:???
二進化浮動小数点と十進化浮動小数点の違いという話じゃない?
0885NAME IS NULL2009/07/17(金) 07:19:01ID:???
>>883
私が聞いたのは、経営戦略上の
重要な指標値(小数点あり)を計算するロジックに、
誤差を増幅させてしまう処理が、
そうとは知らず含まれていて・・・なんて話でした。
ttp://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml
こういうの、ご存じないですか?

>>884
それです。
0886NAME IS NULL2009/07/17(金) 07:52:30ID:???
わかります、ホスト言語で2進化浮動小数点型を使って台無しにするわけですね。
0887NAME IS NULL2009/07/17(金) 08:04:27ID:???
OracleをでっかいExcelだと思ってる中小企業の社長がいましたよ。
式はどこにいれるの?どうやったら印刷できるの?
とリアルで聞かれたことがある。そなもん売りつけるなよ。
0888NAME IS NULL2009/07/17(金) 10:34:20ID:???
確かにExcelで顧客情報や会計を管理してる企業は多いな。
検索とかめんどくさそうだしLAN内のPC全部にExcel入れてExcelの共有ファイル開くとか効率悪そうな事してる。
仕事情報誌で「要エクセル」とか書いてある企業はたいていそんな企業。
データベース一式売り込む絶好のカモ。
0889NAME IS NULL2009/07/17(金) 10:56:42ID:???
>>879
どうせMySQLとか知らないだろうしOracleでいいんだよ
0890NAME IS NULL2009/07/17(金) 19:01:27ID:???
エクセルがDBより優れてる点は個々人で簡単確実にバックアップが取れる点。
素人がDB管理して、ある日DBが壊れました、バックアップがしっかり
できてなくて復旧できませんでした、なんて言われたらたまらない。
0891NAME IS NULL2009/07/17(金) 19:56:09ID:???
SIer中小企業相手にがOracle売って儲けになるんかね。
MySQLとかPostgresで安価に構築し(てるように見せかけ)て、
システム構築してやったほうが営業上お得じゃね?

Oracle 100万円 + システム開発費用 100万円=200万円の原価より、
MySQL  0円  + システム開発費用 100万円=100万円の原価で営業かけたほうが、
客目線では安いし、どうせ違いなんて中小規模じゃ大差ないんだし。
0892NAME IS NULL2009/07/17(金) 21:22:57ID:???
Oracleが使える人間は金出しゃ買ってこれるが、MySQLだとそういうわけには
いかないからなぁ。「MySQL使える人」で募集かけてもロクなのいやしねぇ。
0893NAME IS NULL2009/07/17(金) 21:36:54ID:???
>>890
MS系はそこが強いよな
Oracleはバックアップの難易度がちょっと高い

>>891
Oracleなら安いパートナーが使えるんだよ

>>892
PostgreSQLも似たような状況?
日本でMySQLって安いベンチャーとか、WEBのおまけでシステム組んでるとこってイメージなんだが
0894NAME IS NULL2009/07/17(金) 22:27:08ID:???
Oracleの資格試験は高すぎませんか?
0895NAME IS NULL2009/07/17(金) 22:53:17ID:???
上位資格は高すぎるな
あれ大手5社以外に取らせる気ないだろ
0896NAME IS NULL2009/07/17(金) 23:45:25ID:???
試験はともかく、講座がなw
初学者ならともかく、実務やってる人にとっては、講座のレベルは低いし。
0897NAME IS NULL2009/07/19(日) 15:21:09ID:???
顧客向けのサービスの種類をテーブルで管理しています。
単純に顧客が選択できるサービス毎に連番振って管理すればいいやとか思ってたら、
過去にあった特定のサービスが細分化して、あるサービスグループだけ切り取るのが大変になってしまいました。
そこでプライマリキーに連番を使用するのを止め、サービス名そのものをプライマリーキーにし、
GROUP1_SERVICE1
GROUP1_SERVICE2
GROUP2
のように管理した上で取り出す時はLIKEなどを使用しようと考えているのですが、
これで問題ないでしょうか?
アドバイスいただければ幸いです。
0898NAME IS NULL2009/07/19(日) 15:44:04ID:???
主キーは一意性必須だよ。
検索キーに使いたいだけなら索引を張ればいい。
複数のカラムを纏めて1つの主キーや索引にすることができる。
名前というのは将来的に変更される可能性があるから主キー等はコードとして持つこと。

…と文の意味がよく分からないので適当に言ってみた。
0899NAME IS NULL2009/07/19(日) 16:27:00ID:???
>>898
ありがとうございます。複数のカラムを主キーにするということですね。

例えばOracleのデフォルトで用意されてるdept表とかはdeptnoが設定されていますが
dnameを主キーにした方が参照する際も可読性も増して便利なんじゃないかと思ったんです。
将来部門名が同じでも内容が異なる部門が発生する可能性とヒューマンエラー排除のどちらを優先すればいいのか。
0900NAME IS NULL2009/07/20(月) 01:05:16ID:???
CUSTOMER_IDというNUMBERの主キーがあるとします。
INSERTするときに主キーは自動でカウントアップしたいです。
SEQUENCEを使用しない場合、どんなやり方があるの?
非PL/SQLで。

INSERT INTO CUSTOMER (CUSTOMER_ID,CUSTOMER_NAME) VALUES(SELECT MAX(CUSTOMER_ID) + 1 FROM CUSTOMER, '顧客A')

みたいにできるのかな?
でもこの場合、1件も無かった場合は・・・
0901NAME IS NULL2009/07/20(月) 09:01:25ID:???
>>900
それでは二人がトランザクション切って同時にINSERTしたら番号がかぶってしまう
0902NAME IS NULL2009/07/20(月) 11:56:37ID:???
ふーん。
無理なんだ。
0903NAME IS NULL2009/07/20(月) 13:08:00ID:???
>>900

パフォーマンス無視していいのなら、采番表を作って、そいつを悲観ロックで取るという方法だろうな。
0904NAME IS NULL2009/07/20(月) 13:41:58ID:???
どうしてもそれでやりたいなら、失敗したらリトライするロジック組むしか
ないだろうが、なんでsequenceを使いたくないのか、だな。
0905NAME IS NULL2009/07/20(月) 23:06:16ID:???
シーケンスだと飛び番なしの連番を生成できないという欠点がある。
0906NAME IS NULL2009/07/21(火) 00:08:24ID:???
それが使いたくない理由?主キーで飛び番不可の理由は?
0907NAME IS NULL2009/07/21(火) 00:44:20ID:???
>>906
いや、本人じゃないから知らないよ。
画面に表示するIDなら飛び番しないように
実装しろと言われてもおかしなことではない。
0908NAME IS NULL2009/07/21(火) 02:00:47ID:???
あるね〜、飛び番許さない案件。
0909NAME IS NULL2009/07/21(火) 02:21:23ID:???
使い方を限定すれば飛び番を防げると思うが
たぶんそれは要件に反する
0910NAME IS NULL2009/07/22(水) 09:24:04ID:???
>>900
利用者がごくわずかで、同時のINSERTが考えにくいなら
ヤッツケ実装としてはアリ。開発初期のプロトタイプとか。
一意制約違反のエラーが稀に起きることもあると覚悟してね。
Try〜Catchして失敗したら元の画面に戻るなら、
運用に持っていっても、トラブルにはならないと個人的には思う。

定石は>>901のとおり。

INSERT INTO CUSTOMER (CUSTOMER_ID,CUSTOMER_NAME)
SELECT NVL(MAX(CUSTOMER_ID),0) + 1, '顧客A' FROM CUSTOMER;
なんて感じでNVLをかければ、最初の1件から可能。
0911NAME IS NULL2009/07/22(水) 09:38:42ID:???
>>897>>899
目的が「特定のグループに属するサービスを一括指定する」ならば、
サービス表以外に、サービスグループ表、リンク表を実装するのが定石。

SERVICE (SERVICE_ID, SERVICE_NAME)
SERVICE_GROUP (GROUP_ID, GROUP_NAME)
SERVICE_GROUP_LINK (GROUP_ID SERVICE_ID)

実装例としては、
サービス選択画面にて「名前」で検索させたとき
サービス名での検索結果とサービスグループ名での検索結果
の両方を表示して、サービスグループが選択された場合は、
LINK表にあるサービスを全て選択したとして動作する、なんて感じ。

0912NAME IS NULL2009/07/22(水) 19:43:29ID:???
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しました。。。
0913NAME IS NULL2009/07/22(水) 21:00:34ID:???
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')
にしようかと思ってます。
これ以外にもっと良い方法って何かないですかね?
0914NAME IS NULL2009/07/22(水) 21:15:16ID:???
>>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
0915NAME IS NULL2009/07/22(水) 21:24:36ID:PNVb1M3B
>>914
それだとA、B共にNULLの場合0になる
0916NAME IS NULL2009/07/22(水) 21:44:11ID:???
素直にnlv関数つかえよ…そのためにあるような関数だろ。
0917NAME IS NULL2009/07/22(水) 21:45:10ID:???
nvlだた。すまん。
0918NAME IS NULL2009/07/22(水) 22:01:40ID:???
相変わらず「ご教授」って間違う日といるんだね。
0919NAME IS NULL2009/07/22(水) 22:11:29ID:???
お前も「日と」ってなんだよ。
0920NAME IS NULL2009/07/22(水) 22:42:12ID:???
よろしくお願いします。

pl/sqlで

select * from table1 where hogehoge
union
select * from table2 where hogehoge

の結果を

select * bulk collect into array from table

みたいに配列に格納するには
どのように書けばいいのでしょうか?

環境は oracle 10g, RedHatLinux です
0921NAME IS NULL2009/07/22(水) 22:55:33ID:???
>>920
まっ、手っ取り早いのが

select * bulk collect into arrary from
(
select * from table1 where hogehoge
union all
select * from table2 where hogehoge
)

すまんが、意味がない限り"union all"に差し替えさせてもらった
0922NAME IS NULL2009/07/22(水) 22:59:58ID:???
>>912
もう再現しにくいだろうけど、
ビューで使っているテーブルの定義が変更された場合、
ビューのステータスはINVALID状態になる。
SELECT STATUS FROM USER_VIEWS WHERE VIEW_NAME='xxx';
で見てみよう。
ALTER VIEW xxx COMPILEするか、
一度ビューをSELECTすると自動的にCOMPILEされる。
そうすると、DESCで見える構成が適切に更新される。
0923NAME IS NULL2009/07/22(水) 23:08:47ID:???
>>913
DECODE関数はどう?
SELECT DECODE(A.COL001,B.COL001,'1','0') AS COL001_FLAG

たぶん、NVLを追加せずともイケると思うんだけど。
09249202009/07/22(水) 23:10:11ID:???
>>921

ありがとうございます。
明日会社でやってみます。

ちなみに教えていただいたSQL文は
()の中だけのSQL文に比べて実行速度は
かなり落ちるでしょうか?それともほとんど変わりませんか?

元の質問に書けていなかったのですが、アプリで実装する前に
SQLの大体の実行速度を計りたいのです。

09259132009/07/22(水) 23:58:00ID:???
>>914-917>>923
レスありがとん
IS NULL判定、nvl関数、decode関数
それぞれ使って試してみます
0926NAME IS NULL2009/07/23(木) 00:14:59ID:???
>>924
それは環境次第、データ量次第
一つ言えるのが、データ量によるけど"UNION"と"UNION ALL"とでは
劇的にパフォーマンスが変わるよ
0927NAME IS NULL2009/07/23(木) 08:30:56ID:???
アプリで実装する前に性能は確認できるよ。
SQL*PlusからPL/SQLブロックを実行すればいい。
ttp://www.shift-the-oracle.com/sqlplus/tutorial/execute-plsql.html
09289132009/07/23(木) 21:21:57ID:???
結局、decode関数使うことにしました。
レスくらたみんあさんくす
0929NAME IS NULL2009/07/26(日) 21:24:14ID:???
REDOアーカイブを自動作成するようにしたら
アーカイブ作成してる間SQLの応答が返ってこないんだけどなんで?
REDOグループは5つあるし空き領域も十分だしCPU使用率も10%程度。
0930NAME IS NULL2009/07/26(日) 22:35:34ID:???
ふつうは返ってくるよ
HDDが遅いんじゃないの
0931NAME IS NULL2009/07/27(月) 06:43:39ID:???
何で待機しているのか調べてみては?

ttp://perfopy.ashisuto.co.jp/oracle_performance_educ/taiki_event.html
こんな感じにV$SYSTEM_EVENTビューを使って待機イベントを調べられるはず。
0932NAME IS NULL2009/07/27(月) 08:26:18ID:nmXGDGSs
10g使ってDB作る予定なんだけど
ハードでストライピングとミラーリングしてるんだけどASM使うメリットってある?
RAWデバイスで十分?
0933NAME IS NULL2009/07/27(月) 11:54:11ID:???
ファイルで十分。
つか、OSくらい書け。
RAC使うなら、ASMにしておいたほうがいいかもしれんが。
0934NAME IS NULL2009/07/27(月) 12:29:21ID:???
>>932

RAW使うぐらいならASMの方が領域管理が楽といえば楽かもな。
でも>>933が言っている様にRAWの性質はO/Sにかなり依存するからな。
0935NAME IS NULL2009/07/27(月) 12:31:21ID:???
>>932

あとOracle 12gではRAWは完全にサポートしなくなると米Oracleは発表した。
0936NAME IS NULL2009/07/27(月) 13:29:28ID:nmXGDGSs
OSはソラリス10でRAC使う予定!
0937NAME IS NULL2009/07/27(月) 19:43:32ID:???
Solaris10なら、x86かSPARCかを書こうよ。
実績持ってる人がいるかもしれないよ。

ま。
RACなら、ASMを利用するのが普通みたいだけどね。
ASMも内部的にはRaw Deviceを扱っているというし。
0938NAME IS NULL2009/07/27(月) 20:06:31ID:???
プロシジャ内でSELECT文を使うときの対象テーブル名を引数で動的に切り替えたいんだけど
このときは動的SQL(execute immediate)を使えば良いのでしょうか?
その場合、動的SQLを使用した場合の懸念点などあるでしょうか?(パフォーマンス面など)
0939NAME IS NULL2009/07/27(月) 20:36:48ID:???
>>938
SQLインジェクチオンに気をつけなッ!
0940NAME IS NULL2009/07/27(月) 21:53:41ID:???
>>938
俺は、明示カーソルでOPEN、FETCHをしておいて
CLOSEをよく忘れる。
動的SQLを利用した時、特に忘れやすい。
CLOSEせずに同じカーソル名で動的SQLをOPENしたり。
我ながら小学生レベルだと思う。カナシイ。
0941NAME IS NULL2009/07/29(水) 20:03:01ID:???
>>938
パフォーマンスは明らかに下がる
0942NAME IS NULL2009/07/29(水) 20:50:31ID:???
でもDBMS_SQLパッケージ使うよりは、断然パフォーマンスましになったんじゃね?
手続きも楽だし。
0943NAME IS NULL2009/07/29(水) 21:03:16ID:???
>>941
パースや実行計画のコストが無視できないような短時間で終了するクエリでならば明らかだが、
複雑で時間のかかるクエリではそうとも限らん。特にデータに偏りがある場合などは。
0944NAME IS NULL2009/07/29(水) 21:13:57ID:???
動的SQLとか使うのは頭が悪い奴
0945NAME IS NULL2009/07/29(水) 21:48:41ID:???
頭が良い奴は両方の得失を理解して使い分けができる
0946NAME IS NULL2009/07/29(水) 21:53:06ID:???
得失がわかってない奴が偉そうにいったところでねぇ
0947NAME IS NULL2009/07/29(水) 21:56:27ID:???
分かっている方説明ヨロ

俺は分からん・・・
0948NAME IS NULL2009/07/29(水) 22:14:44ID:???
単純な話、条件によって最適なアクセスプランが異なるようなケースでは
その都度実行計画を作る方がトータルのコストが低い場合がある。
オプティマイズをミスった場合のペナルティは場合によっては非常に
大きいから、あたりまえといえばあたりまえ。
0949NAME IS NULL2009/07/30(木) 07:30:02ID:???
10gR2でも/*+ RULE */ヒント文は有効なので、
動的SQLに埋め込んでルールベースで動かす、
というのも、オプティマイズをミスった場合のペナルティから
回避する方法の一つ。

俺の経験では、コストベースオプティマイザに任せた結果、
大規模な表同士のジョインでハッシュジョインが
選択された時に一時表領域を食い尽くして、
尋常じゃないレベルまで性能低下するケースがあった。

ちなみに/*+ RULE */ヒント文を埋め込むと、
ソートマージジョインか、ネステッドループジョインの
どちらかになります。
0950NAME IS NULL2009/07/30(木) 08:32:36ID:???
>>944
「俺が設計したファッキンテーブルじゃねえよ糞ったれ」
という事もあるかも知れん。

>>946
部屋にエアコンなくてイラついてんのか?
0951NAME IS NULL2009/07/30(木) 20:36:56ID:???
得失が分かってない奴キタコレ↑
0952NAME IS NULL2009/07/31(金) 02:18:47ID:???
すみません質問です。

今、Microsoft Office InfoPath 2007を使っているのですが、
Oracleに接続してDBの値を使えるらしいのです。
(DBから取得した値をテキストフォームに挿入ということがやりたいです。)

ですが、肝心のOracleへの接続方法が分かりません。

スレ違いかもしれませんが知っている方がいらっしゃいましたら
教えて頂けないでしょうか。
0953NAME IS NULL2009/07/31(金) 06:42:43ID:???
oo4oでORACLE接続するVBAソースを持ってるけど、
著作権者が会社だから公開できないや・・・

ttp://www.atmarkit.co.jp/fdb/rensai/excel2oracle02/excel2oracle02_2.html
とりあえず、上記を参考にExcelでの接続を体験して、
自分なりに改造してVBAの書き方を理解してから、
InfoPathに移植した方が良いのではないかと思います。

Oracle接続するExcelファイルは、テストツールとしても
有効活用できますから。
0954NAME IS NULL2009/07/31(金) 07:25:48ID:???
>>963
ありがとうございます。

以前にVBAでのORACLEの接続経験はあるのですが、
InfoPath2007はVSTAを使ってC#orVB(今回はC#を使おうと思ってます)
で記述する感じでした。

試しにC#でそれらしい記述を書いてみたのですが、usingでOracle接続に必要な
クラスをインポートした所、エラーになり、どんな設定をすれば使えるように「なるのか
が分からないというのが今の状態です。

プログラムを書かないで接続する方法があればそちらで接続したいのです(SQL Server
とかはInfoPathの設定で接続できるみたいです)。
ですがOracleは今の所の調べではそういう設定は無さそうでした...
0955NAME IS NULL2009/07/31(金) 18:37:36ID:???
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利用者)は化石になるね。
09569522009/07/31(金) 21:12:33ID:???
InfoPath2007とOracle接続の件ですが今日解決することができました。

必要なライブラリ(?)を"参照の追加"で追加しないとOracele接続クラスの
メソッドが使えなかったみたいです。

Officeはそこまで使わないので設定の流れが分からなくて...面目ないです。

しかしC#はライブラリが充実していて結構使い易いですね〜

以上お騒がせ致しました。
0957NAME IS NULL2009/07/31(金) 22:00:09ID:???
ORACLEってダウンロードできますか?
0958NAME IS NULL2009/07/31(金) 22:34:05ID:???
できますん
0959NAME IS NULL2009/08/01(土) 04:10:55ID: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が出るまで、
一件取得->配列に代入のループを行っていたので
今日初めてこのプログラムを見て、
一件取得なのか、全部取得なのかどっちか疑問に思っています
0960NAME IS NULL2009/08/01(土) 16:59:51ID:???
俺は、Pro*COBOLを使った事無いけど、PL/SQLでは、
ttp://www.shift-the-oracle.com/plsql/select.html
に書かれているような、実行時のエラーを経験している。
-------------------------------------------------
ORA-01422: 完全フェッチがリクエストよりも多くの行を戻しました
-------------------------------------------------

多分、同じ事になるんではないか。
0961NAME IS NULL2009/08/03(月) 23:13:01ID:???
ここでいいのか分からないけど質問です。
Oracle10gとWindowsCE5.0って直接SQLのやり取りって出来ない?
どうも、WindowsCE5.0用のオラクルクライアントが無いようなのですが。
直接SQLでやり取り出来る方法があれば教えてください。

環境
・PDA(WindowsCE5.0)
・.NetCompactFramework2.0
・VB.net(VS2005)
0962NAME IS NULL2009/08/04(火) 16:50:28ID:???
データベース未経験でわからないので根本的なことですが教えてください。

oracleってどういった業務に使われてるんですか?
0963NAME IS NULL2009/08/04(火) 16:52:24ID:n7ZF7BFv
自分が所有しているCDをアーチストごとに分類したりするのに良く使われるな
0964NAME IS NULL2009/08/04(火) 17:21:36ID:WF6K2+ix
Oracle10g R1 は
Mac OS X Tiger(PPC)で動くらしいのですが
LeopardはPPCとIntelの両方で動くのでしょうか

R2はIntel Mac版があるようなのですが・・・
0965NAME IS NULL2009/08/04(火) 20:46:17ID:???
>>961
CE用のクライアントは聞いたことないね。
ミドルウェアを買う必要あるんじゃないかな。


>>962
CRM(カスタマーリレーションシップマネジメント)
SCM(サプライチェーンマネジメント)
SFA(セールスフォースオートメーション)
ERP(エンタープライズリソースプランニング)
KM(ナレッジマネジメント)
などです。
0966NAME IS NULL2009/08/04(火) 23:47:42ID:???
>>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
0967NAME IS NULL2009/08/05(水) 01:36:05ID:???
よく分からないがOracleLiteClientってOracleLiteServer専用とかじゃない?

Javaが使えるなら確かJDBCのThinドライバでクライアントの
インストールなしにサーバに接続できた気がする。
0968NAME IS NULL2009/08/05(水) 07:50:03ID:???
Windows Mobileは、1週間に1回ぐらいフリーズして、ため息。
3ヶ月に1回ぐらい、知らぬうちに工場出荷状態に戻ってて、激怒。
調子が悪くて自分でハードリセットする羽目になって、涙目。

Windows Mobileという製品を十分評価してからの方がいいよ。
0969NAME IS NULL2009/08/05(水) 11:49:38ID:lbXkSQVv
ODBC接続のとき、Oracleのドライバーを使用すると
ユーザー名が全角10文字より長い場合エラーになるのですが
仕様ですか?
0970NAME IS NULL2009/08/05(水) 19:49:58ID:???
ユーザー名が全角文字って初めて聞きました。
このスレ住民には、そのような使い方してる人は、
いないと思います。

普通は半角英数字とアンダースコア(A-Z、0-9、_)
だけ使って、先頭はアルファベットで、
30バイト以内でユーザー名を設定しますよ。
TARO_YAMADA
GREATSYSTEM360
のような感じですね。

ちなみに、全角10文字より長いとエラーが発生する
というのは、UTF-8では日本語は3バイトなので
30バイト制限に引っかかっているのかもしれません。
0971NAME IS NULL2009/08/06(木) 07:46:30ID:???
長文失礼します。
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
で動作するよう、
具体的にはハングルと日本語を同時に利用可能なように
クライアントアプリを修正する。
0972NAME IS NULL2009/08/06(木) 08:30:58ID:???
>具体的にはハングルと日本語を同時に利用可能なように

民主党か?
売国奴は日本から出て行け。
0973NAME IS NULL2009/08/06(木) 09:20:08ID:???
うちはマルチバイト系の文字を使うカラムは全部NCHAR系に変えて行ったな。
バイトで処理してるアプリの対応は必要だったが最終的にはすっきりした。
0974NAME IS NULL2009/08/06(木) 11:27:44ID:???
データベース移行なんてしなくてもCHAR、VARCHAR2を
NCHAR、NVARCHAR2に定義変更すればいいんじゃない?
多分文字コードはUTF16で定義されてるだろうから、
クライアントの長さチェックの修正も必要ない。
0975NAME IS NULL2009/08/07(金) 00:34:30ID:???
>>971
記憶でレスするので間違えてたらスマソ。
(3) の Import で SJIS→UTF8の変換が必要と判断され、
Import 時の CREATE TABLE でカラムサイズ1.5倍が動い
た気がする。なのでDDLを作り直したほうが良いかもしれない。

あと CSALTER でも SJIS→UTF8はスーパーセットじゃない
のでNGのはず。

ナショナル・キャラクタセットへの変換は、アプリによってはフェッ
チ時のAPI変えたりとか面倒なケースがあったような。
0976NAME IS NULL2009/08/07(金) 06:05:16ID:???
>>972
私も同じ考えでしたから、偉そうに言えませんが
日本の企業が韓国、中国に進出するために
必要なんだそうです、上司いわく。

>>973-975
参考になりました。ありがとうございます。


さて、土日に自宅で頑張ってみます。
0977NAME IS NULL2009/08/14(金) 07:21:24ID:???
やべえ。スレッドストッパーだ、オレ。
0978NAME IS NULL2009/08/19(水) 14:49:32ID:???
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を経由しないとダメなんでしょうか。
0979NAME IS NULL2009/08/19(水) 17:51:33ID:???
11g R1⇒9i R1はそもそもできないそうです
0980NAME IS NULL2009/08/19(水) 21:44:53ID:???
>>978
書き込みを読んで、なにも調べずに想像だけど。
plsql〜のエラーってことはさ、PLSQLのコンパイルに失敗しているってことでしょ。
exp/impってさ、テーブルやらインデックスやらビューやら権限やらPLSQLやら
ありとあらゆるオブジェクトが対象になっているのね。fullでやると。

んで、今回の11gから9iがテーブルのデータだけで良いってんなら。
fullやめて、tablesパラメータでテーブル全部指定してテーブルだけ
インデックスもほしいならindexes=yで、データだけ入れれば?
んで、さらに、途中でエラーが発生してもエラー停止しないって引数
が(名前忘れた)あるからそれもyでつける。

これでデータだけならできんじゃね?
0981NAME IS NULL2009/08/20(木) 09:21:14ID:???
>>979
>>980

お返事ありがとうございます。
imp hoge/hage file=t.dmp tables=table1 ignore=y
でやってみましたが現象変わらずでした。

10g R2(?)以降はimp/expコマンドは正式サポートされていないようですし、
この関係で11g->9iのデータ移行は簡単にいかないのでしょうかね。

データだけで良いので、CSV経由ででも試してみます。
0982NAME IS NULL2009/08/21(金) 00:02:08ID:???
>>981
CSV経由するくらいなら、DATABASE Link接続でInsert Selectは?
0983NAME IS NULL2009/08/21(金) 00:03:48ID:???
LOBでトラブる
0984NAME IS NULL2009/08/21(金) 09:56:58ID:???
>>982
DATABSASE Linkは使ったこと無かったのですが、後学のために試して
みたいと思います。ありがとうございました。
0985NAME IS NULL2009/08/21(金) 13:45:03ID:???
おいらにとっちゃデジタルの方がどうにでもできる
0986NAME IS NULL2009/08/21(金) 22:43:27ID:???
Oracleの9iで巨大なテーブルデータをロード、アンロードしたいんだけど、
一般的にどんな方法とるの
09879862009/08/21(金) 22:46:52ID:???
ごめんなさい、途中でエンター押してしまった。

Oracleの9iで巨大なテーブルデータをロード、アンロードしたいんだけど、
一般的にどんな方法とるの?
今は、普通にPro*CからSELECT * FROM・・ってしてデータ取得して
全件とってきてるんだけど、一時表領域がパンクしてエラーになってる。
巨大テーブルの全件アンロードとロードって結構やりそうだと思うんだけど
これだっていう一般的な方法がぐぐっても見つからんかった。
0988NAME IS NULL2009/08/21(金) 22:57:35ID:???
9iまでならimp/exp (以降ならimpdp/expdp)
ロード時、アーカイブログはオフる
0989NAME IS NULL2009/08/21(金) 23:11:23ID:???
>>988
サンクス、確かにそれが普通っぽい気がする。
逆になんでそんな実装をしているんだとおもいます?
やっぱり、やっぱりロード時にオフる必要があるからでしょうか?
普通にテーブルの全データ取ってきてるだけなのに。
実装が不自然すぎて逆に意図があるんじゃないかと思ってしまう。
0990NAME IS NULL2009/08/21(金) 23:15:19ID:???
質問ばっかりウザい
一つ答えてもらったんだから自分でなんとかしろよ
0991NAME IS NULL2009/08/21(金) 23:18:23ID:???
別に質問してるわけじゃないし。
それに質問だとしても質問スレなんだから何か問題あるでしょうか?
0992NAME IS NULL2009/08/21(金) 23:37:44ID:???
>>989
変な実装だと思った時は、素直にそう思った方がよい
(実際、無知から来る妙な実装を結構見てるから)
レス数が950を超えています。1000を超えると書き込みができなくなります。