Oracle 質問総合スレ3
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001NAME IS NULL
2008/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. 質問する時はDBのバージョンとプラットフォームぐらいは書きましょう。
2. OTNからダウソ出来るものは、30日過ぎても別に機能的に制限が
かかるという訳ではありません。あくまで紳士協定に基づいて、
削除してくださいという事です。
0003NAME IS NULL
2008/10/09(木) 02:27:10ID:x7UcvDt00004NAME IS NULL
2008/10/09(木) 23:01:42ID:???0005NAME IS NULL
2008/10/10(金) 01:33:20ID:WKuieuVmODP.NET にて、バルクバインドを使用してレコードのインサートを行っており
インサート時にエラーになったレコードが存在しても
エラーレコード以外を全てインサートするように組みました
この時、例えば100レコードを配列バインドにしてインサートしたのですが
100レコードの中にエラーになったレコードが存在してもインサートを続行すると
なぜか配列最後尾(この場合は100番目のレコード)が
インサートエラーになっていないにも関わらずテーブルにインサートされません
エラーが100件中の何件目であろうと、エラーレコードがあると配列最後尾レコードが入りません
100件全てが正常にインサートされた場合は最後尾もちゃんと入るのですが・・・
これってODP.NET の仕様なのかなと思ったのですが
やっぱり自分のコードが怪しいですよね・・・
0006NAME IS NULL
2008/10/10(金) 20:49:54ID:???sqlplusを2つ立ち上げて、片方にinsertしているのに
片方のselectで出てきません、これってバグですか?
0007NAME IS NULL
2008/10/10(金) 22:04:32ID:???それ、何て言うファントムリード?
RDBMSの意味、そしてトランザクションの隔離レベルを良く勉強してから
質問するといい。
0008NAME IS NULL
2008/10/10(金) 22:06:01ID:???(´д`)つcommit
0009NAME IS NULL
2008/10/11(土) 21:00:25ID:k0WWMN/30010NAME IS NULL
2008/10/12(日) 00:00:34ID:???こういうのでもいいのかと勘違いしてしまう
0011NAME IS NULL
2008/10/12(日) 03:21:01ID:Rc/3eSvJ皆様はpmonとかバックグラウンドプロセス全部見てますか?
sqlplusで接続確認するとかプロセスだけ見てもハングしている可能性あるよは無しで、単純にプロセスだけ見る場合です。
0012NAME IS NULL
2008/10/14(火) 00:08:12ID:WVWwMetcstartup nomountで起動するプロセスにするとか。
smonのほかに、少なくともpmon dbw lgwr ckptが起動するはず。
0013NAME IS NULL
2008/10/14(火) 19:52:14ID:???可能です。
以上。
はい次の方。
0014NAME IS NULL
2008/10/14(火) 20:17:32ID:???あー、そんなようなバグの話聞いたことあるね
自分は出くわしたことないけど
0015わかってない
2008/10/18(土) 17:52:41ID:???コメントアウトしちゃったけど後で影響でますか?
0016わかってない
2008/10/18(土) 21:39:36ID:???んー
su - oracle -c "$ORACLEO_HOME/bin/dbstart"
とかやりたくなるよな。
これができないプラットフォームがあるんじゃまいか?知らんけど。
0017NAME IS NULL
2008/10/21(火) 20:33:45ID:sw348KkRsysや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 NULL
2008/10/21(火) 20:36:43ID:???表領域 表作成
RESOURCEロールの中の「CREATE TABLE」 ○ ×
単独の「CREATE TABLE」 × ○
0019NAME IS NULL
2008/10/21(火) 20:37:42ID:???0020NAME IS NULL
2008/10/22(水) 00:10:51ID:???更新したら全データぶっとんだあああああああああ
ぎゃああああああああああああああああああ
0021NAME IS NULL
2008/10/22(水) 10:03:45ID:???RESOURCEロールにはUNLIMITED TABLESPACE権限が含まれてるからじゃね
含まれてるといっても、ロールに与えられてるんじゃなくて、自動付与だけど
しかも、これは10gよりずっと前からの仕様みたいなもんでしょ
session_rolesとかsession_privsで確認するのがよろしいかと
0022NAME IS NULL
2008/10/23(木) 00:10:32ID:ZQGFGXgKSQLの知識が少ないので、仕事で困っています。教えてください。
SELECT DISTINCT VALUE ( SUBSTR ( 項目A , 1, 3 ) , 'XXX' ) FROM テーブルA
これは、テーブルAの項目Aの1桁目〜3桁を表示? この 'XXX' ← この文がわかりません。
0023NAME IS NULL
2008/10/23(木) 00:39:36ID:???もしその必要がないのであれば、単純に
SELECT SUBSTR( 項目A , 1, 3 ) FROM テーブルA
でよいのでは?
0024NAME IS NULL
2008/10/23(木) 00:42:31ID:ZQGFGXgKVALUE ( SUBSTR ( 項目A , 1, 3 ) , 'XXX' ) この 'XXX' これは何を意味するのでしょうか?
これの'XXX'がわかりません。
何とぞ、明日までの課題ですので、どなたか教えてください。
項目Aが取得できなかったら、'XXX'を代入するイメージなのでしょうか?(>_<)
0025NAME IS NULL
2008/10/23(木) 01:25:07ID:???単に項目Aの1桁目〜3桁を表示するだけなら必要ないのでは?
0026NAME IS NULL
2008/10/23(木) 23:58:30ID:???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:???両方にlocationオプションで指定していれば、同じアーカイブログが
同時にそれぞれのディレクトリに吐かれる事になる。
ちなみに今の状態から判断すると、location句が指定されているのは
log_archive_dest_2だけの方になってるとかないか?
エスパーでないので良く分からんけどな。
0028NAME IS NULL
2008/10/24(金) 03:25:33ID:???実は問題が間違っていてVALUEではなくNVLだったとかじゃね?
0029NAME IS NULL
2008/10/24(金) 22:45:42ID:???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 NULL
2008/10/25(土) 00:02:09ID:???log_archive_dest_state_1=enable
log_archive_dest_state_2=defer
でいいんじゃね?
いずれにせよリカバリを実行するのなら、log_archive_dest_2を
init.oraから一時的に消すか、もしくは全アーカイブログを
一箇所に集めておくとかすればいいじゃね?
もしくは手動で指定とかね。
0031NAME IS NULL
2008/10/25(土) 00:33:48ID:???なるほど、一時的に無効にしちゃうって事ですね。
それもありですね。
結局 log_archive_dest_2 の指定を削除して、取り合えずはリカバリできました。
ですが、どっちかを指定できるんじゃないかと思って聞いてみました。
できそうで、できないんで...
0032NAME IS NULL
2008/10/25(土) 03:25:18ID:???RMANは使いかなせれば意外と便利。
0033NAME IS NULL
2008/10/25(土) 14:09:38ID:???RMANですか。使った事ないです...
使いこなせれば、いろいろ便利なのかもしれないですね。
0034NAME IS NULL
2008/10/29(水) 22:12:39ID:VF6FeZGZパッケージを使わずにストアドプロシージャのみでの配列操作で
レコードを更新することは可能でしょうか?
参考URLなどありましたら教えてください。お願いします。
0035NAME IS NULL
2008/10/30(木) 20:35:22ID:k/PL7hUN助けてください。おながいします。
0036NAME IS NULL
2008/10/30(木) 20:53:21ID:???バルクフェッチ、バルクインサートの事かな?
それならここを参考すればいいと思う。。
http://www.shift-the-oracle.com/plsql/bulk-insert.html
10g以降であれば、かなり扱いが楽になった
0037NAME IS NULL
2008/10/30(木) 22:04:05ID:k/PL7hUN貴重な返信ありがとうございます。
0038NAME IS NULL
2008/10/31(金) 13:30:57ID:???Oracleにおいては、テストや開発環境で安価もしくは無料で手に入るものは
あるのでしょうか?
例えば、SQL Server では以下のようなものがあります。
・最高の機能が開発限定として安価(1万未満)で販売されている。
・最高の機能が日数制限付(180日程度)で無料でDLできる。
・制限付で無料、C/Sシステム用として配布も可能がある。
0039NAME IS NULL
2008/10/31(金) 23:54:09ID:???体験版(中身は製品版と全く同じ。完全に開発目的なら、期限過ぎてもそのまま使用可能だったかな?)と
機能及びインストールベースが削られた、商用利用も可能なOracleXEという無料版
0040NAME IS NULL
2008/11/03(月) 15:35:43ID:BN+eUsH78i⇒10gにします。
サポートできていないSQLがのっているサイト・掲示板などありますか?
0041NAME IS NULL
2008/11/03(月) 16:05:22ID:???0042NAME IS NULL
2008/11/03(月) 19:28:46ID:???どうすればいいでしょう?
0043NAME IS NULL
2008/11/03(月) 19:30:09ID:???0044NAME IS NULL
2008/11/03(月) 20:37:04ID:i9ran1sH9iR1,R2 10gR1,R2の新機能、SQLリファレンスのマニュアルの
廃止になった機能を読む
0045NAME IS NULL
2008/11/03(月) 21:01:07ID:???ヒント:Office入れてる?IMEを標準にしてやって味噌。
0046NAME IS NULL
2008/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 NULL
2008/11/04(火) 14:57:35ID:xSEhhdTy従来のSQLクエリ文とは違うらしいけど
どう違うのでしょうか?
0048NAME IS NULL
2008/11/04(火) 23:35:02ID:???現行ログが吹っ飛んだらDB止めたらいかんだろ・・・・。
mount状態で使えるかどうかは知らんが、現行ログが吹っ飛んだら
alter database clear unarchived logfile group <吹っ飛んだロググループ番号>;
で対応するもんだ。
0049NAME IS NULL
2008/11/06(木) 18:14:27ID:6klp6LOTOracleのデータブロックのI/Oサイズチューニングは、初期化パラメータDB_FILE_MULTIREAD_COUNTで行いますが、
Windows Server 2003での、I/Oサイズの変更は可能でしょうか?
どなたか教えていただければ幸いです。
0050NAME IS NULL
2008/11/06(木) 18:17:22ID:???0051NAME IS NULL
2008/11/06(木) 23:27:18ID:???> DB_FILE_MULTIREAD_COUNT に一致する情報は見つかりませんでした。
0052NAME IS NULL
2008/11/06(木) 23:34:20ID:???Raid組んでいるのならRaidのストライプサイズでI/Oサイズを
変更出来る様になっていると思うけどね。
俺が昔ベンチマーク取った時には、窓のRaidはストライプ
サイズが大きい方がパフォーマンスが良かったな。
当時、CompaqのDL380の6ノードRACでの結果だけどな。
0053NAME IS NULL
2008/11/06(木) 23:43:34ID:???UnixでもSolarisUFSはブロックサイズ8Kで64K I/Oでほぼ固定だったりするし。
VxFSは、その辺はかなり自由に設定できるけど。
0054NAME IS NULL
2008/11/07(金) 02:04:21ID:???Win2000serverに10g release2をインストールしたいのですが、インストーラはOTNの何年何月版に有るのでしょうか?
簡単に分かるだろうと思ってファイルを漁ったのですが見つかりません…
0055NAME IS NULL
2008/11/07(金) 03:28:45ID:???あるユーザーを、制限付きユーザーで作りたいのです
その制限が、指定の表領域(もしくはテーブル群)のみ参照・更新できる、といった感じで
実際、通常ユーザーは基本領域のみ参照更新可能で、管理ユーザーは
システム全域と、Create、Dropできるといった分け方されてるんですよね?
そのへん、どやってるやるのでしょう?
0056NAME IS NULL
2008/11/07(金) 03:35:59ID:???ほらよ(´д`)つhttp://www.oracle.com/technology/software/products/database/index.html
0057NAME IS NULL
2008/11/07(金) 03:37:56ID:???指定のテーブル群だけを参照/更新させるというのは、オブジェクト権限で与える。
特定表領域の使用や容量を制限するのはQuotaで設定する。
0058NAME IS NULL
2008/11/07(金) 03:40:58ID:???Format時のAllocation Unit Sizeで変更出来るんじゃね?
0059NAME IS NULL
2008/11/07(金) 13:27:42ID:???Solarisx86/x64版はまだなんだなぁ・・・。
0060NAME IS NULL
2008/11/10(月) 20:12:40ID:1PkOr8o/ウチの使い方だと、どうも2,3週間で落ちる
で、Linuxにしたらいんじゃね? ってことで試験運用することになったんだけど
この際だからDBいれるところも検討しなおそうと言う話に
で、Rawにしたほがいいのかな?
そっともExt3ファイルでつくったほうがいいのかな?
それぞれ何が違って、メリット・デメリットがなんなのかっていうのが、
公式なのではなくて、使用者側からの情報がさっぱちなくて
おまえらはどうしてますか?
0061NAME IS NULL
2008/11/11(火) 02:51:32ID:???俺の私見だが、こんな感じかな。
[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 NULL
2008/11/11(火) 13:05:28ID:???致命的欠陥すぎるw
0063NAME IS NULL
2008/11/11(火) 22:52:54ID:???てか、ファイルシステム自体にパス冗長化機能を持ってるやつってあんの?
0064NAME IS NULL
2008/11/11(火) 23:10:52ID:???そんな致命的でも無いよ。
書いた様に、複数パスがある場合には、冗長化されたRaw Device
作ってしまえばいいだけ。
そいつをudevで起動時に認識させさえすれば、特に意識する必要は
無い。
0065NAME IS NULL
2008/11/12(水) 01:45:35ID:ee+0Tgqq10%とかそんなレベルなら、ファイルシステムの方がいいきがするなぁ
0066NAME IS NULL
2008/11/12(水) 03:32:45ID:???O/Sにもよるが、ファイルシステムとRAW Deviceも最大で30%しか違わ
なかったりとかするしね。
私見だが、ASMにするメリットはRAW Deviceを使うよりかは、管理が楽で
そこそこパフォーマンス向上も望めるという点かな。
0067NAME IS NULL
2008/11/12(水) 07:23:51ID:1ijqF5aF0068NAME IS NULL
2008/11/12(水) 11:49:20ID:???今でこそ大分落ち着いたけど、最初の頃はバグだらけで結構
データ吹っ飛んだ例が後を絶たなかったし。
ようやっと実用に耐えられるレベルになってきたって感じじゃない?
RACの場合はそれこそRaw Deviceの方が歴史が長いしね。
0069NAME IS NULL
2008/11/12(水) 13:00:53ID:???LVMやVxVM使ってるなら、わざわざそれらの管理外に別のボリュームマネージャを使いたいとは思わんし。
0070NAME IS NULL
2008/11/12(水) 19:22:34ID:1ijqF5aFocfsとかLinuxだから使わないとかいう選択肢はない。
0071NAME IS NULL
2008/11/13(木) 03:14:23ID:???まあ、一応自身の技術習得目的のためにHP-UXやLinux上でも
使っているけどな。
窓RACだったらASMよりかはOCFS使った方が何かと楽そうな気が
するよ。
0072NAME IS NULL
2008/11/16(日) 15:44:17ID:???http://gimpo.2ch.net/test/read.cgi/wildplus/1226794148/
0073NAME IS NULL
2008/11/16(日) 16:05:29ID:???信用売り残が積み上がっているからでしょ。
0074NAME IS NULL
2008/11/18(火) 15:05:33ID:???>>ウチの使い方だと、どうも2,3週間で落ちる
2-3wで落ちる使い方が気になります、詳しく
0075NAME IS NULL
2008/11/18(火) 23:38:08ID:zZ+WlhavODP.NET使って、エクスポートするプログラムをつくたのさ
最初ExexuteReader使ったら落ちまくる。
200万件走るなんて夢のまた夢。
40万件くらいでOutOfMemoryとか言って死んじまう。
仕方ないからDataAdapterつかってFILLしてみたら、当然一発で落ちる。
どうしたらいいんだ。
0076NAME IS NULL
2008/11/19(水) 00:10:59ID:???expdp を外部コマンドとして呼び出すとか。
0077NAME IS NULL
2008/11/19(水) 00:15:40ID:jlroBEfmアイディアありがとう!
でも、CSVで吐き出さないといけないんだ。
しかも、特定のカラムは置換してやったりしないといけない。
業務関係の変な処理が多かったからVB.NETで、と思ったのだ。
正直、手詰まりな中で来週本番稼動だぜ!
死ぬしかないか!
0078NAME IS NULL
2008/11/19(水) 03:19:53ID:???Windows版11gでも問答無用でviってどういうことなの・・・
0079NAME IS NULL
2008/11/19(水) 05:55:05ID:???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:???パッケージ作ってUTL_FILEで出力。
特定のカラムの置換処理はViewで対応する。
0081NAME IS NULL
2008/11/19(水) 06:54:13ID:AvIXrbBK各コマンドを打つ時の状態が色々あって混乱しています。
DBの状態(MOUNT/OPEN)・データファイル状態(ONLINE・OFFLINE)
をどのように使い分けるのかが良くわかりません。
何とか理解したいのですが…
0082NAME IS NULL
2008/11/19(水) 07:02:36ID:???大別するとこんな感じかな。
Open状態でリカバリを試みる状況
- データファイルの破損
- 表領域レベルでのリカバリの実施
- ブロックレベルでの破損 (RMANのMBR機能を使う)
Mount状態でリカバリを試みる状況
- DB全体のリカバリ (Point-in-timeリカバリを含む)
- Online Redoログが吹っ飛んだ場合
Nomount状態でリカバリを試みる状況
- コントロールファイルがふっ飛んで再作成しないとならない場合
0083NAME IS NULL
2008/11/19(水) 21:05:47ID:q2BaRybnバックアップリカバリを学ぶ前にオラクルの基本動作を学ぶべし。
そうすれば自ずと状態ごとにリカバリできるものの判断ができるようになる。
0084NAME IS NULL
2008/11/19(水) 21:59:06ID:???カラム置換が良く分からないけど。SQL*Plus で
set markup html on ←もしかしたら違うかも
set pagesize 0
set trims on
spool hoge.html
select ...
spool off
で、hoge.html を Excel で編集→CSV出力
なんてのはダメ?
一度画面出力される分だけ、レコード数的に時間は掛かりそうだけど。
0085NAME IS NULL
2008/11/19(水) 22:00:39ID:???0086NAME IS NULL
2008/11/19(水) 23:01:12ID:???Excel2007 で改善されてるよ。
それでも100万行くらいだけど。
0087NAME IS NULL
2008/11/22(土) 15:22:30ID:9xzmOyv+10gR2ではバグに悩まされたので。
0088NAME IS NULL
2008/11/22(土) 15:34:53ID:???CROWNで情報をあさってみれば。
0089sage
2008/11/22(土) 17:16:50ID:p5sHRkLn10gはbugだらけだが、調査で既存bugをすべて潰せば安定するはず。11gは10gよりbug少ないかも知れんが、導入してるところが少なく、まだbugができっていない可能性がある。
88>>
CROWNってw
0090NAME IS NULL
2008/11/22(土) 18:46:47ID:???使うプラットフォームによるかな。
Linuxなら、新しいOracleの方が、インストールの手間は少なくて済む。
0091NAME IS NULL
2008/11/22(土) 20:19:29ID:???あなたにノウハウがある分10gR2でいいんじゃないの?
プロジェクト終わるまでにサポート切れるかも知れないけど。
0093NAME IS NULL
2008/11/22(土) 21:19:37ID:p5sHRkLn当たり前のことをわかっていないSEの多いこの世の中。
当たり前のことをわかっていることも大事なことの一つ。
009488
2008/11/22(土) 22:17:21ID:???0095NAME IS NULL
2008/11/22(土) 22:35:55ID:???0096NAME IS NULL
2008/11/23(日) 00:09:38ID:???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 NULL
2008/11/23(日) 00:41:34ID:???0098NAME IS NULL
2008/11/23(日) 00:46:50ID:81DIcuAu俺は10203で大障害になるケースも何件か見てるけどな。
逆に10201から上げたのが起因で障害が起きたこともあったし。
oprocdとか不振な動きをすることが多い気がする。
>>97
メリットもなにも、10g以降必須ですから。
0099NAME IS NULL
2008/11/23(日) 00:49:40ID:???そのサポートは無期限とは言わない。
0100NAME IS NULL
2008/11/23(日) 10:18:24ID:ONIAIzDshttp://life.bbs.thebbs.jp/1227401075/
こんな法案が可決したら日本は破綻する
(ちなみに東京の人口は1280万人)
選挙権がある方は良く考えて投票してください
0101NAME IS NULL
2008/11/23(日) 11:33:34ID:???0102NAME IS NULL
2008/11/23(日) 11:39:29ID:???CRSは11gの方が安定している。
というか、11gのCRSは実質的には10.2.0.4とほぼ同じ。
10.2.0.2は結構バグがあって、ノードが突然排除されたりする。
10g使うなら、CRSは10.2.0.4+バンドルパッチは必須だろうな。
もしくはベンダー側のクラスターウェアと同居させて、スプリット
ブレイン時のノード選定はそっちに任せるというのも手。
0103NAME IS NULL
2008/11/23(日) 11:54:13ID:???あれ?ClusterwareってRACと関係あるの?
0104NAME IS NULL
2008/11/23(日) 14:30:19ID:???無期限のサポートだと、
不具合が出ても直してもらえないんです!><
0105NAME IS NULL
2008/11/23(日) 15:09:21ID:???一度買ってしまえば、永遠に家のPCで使いたい放題ってことですか?
0106NAME IS NULL
2008/11/23(日) 15:19:35ID:???0107NAME IS NULL
2008/11/23(日) 15:28:37ID:???表領域およびデータファイル破損は完全リカバリで対応可能だが、
表領域の削除は、仮にデーターファイルがあっても不完全リカバリする必要がある、
で合ってますでしょうか?
0108NAME IS NULL
2008/11/23(日) 23:16:53ID:81DIcuAu9iRACまではベンダ製ClusterwareありきでRAC(OPS)は動作していたが、10g以降のRACを使用するにはOracle Clusterwareが必要。
>>107
日本語でOK
0109NAME IS NULL
2008/11/24(月) 07:22:35ID:???たとえば、EXAMPLE表領域にexample.dbfというデータファイルがあるとします。
drop tablespaceでEXAMPLE表領域を削除し、example.dbfを削除しなかった場合、
復旧するには不完全リカバリが必要ですか?
0110NAME IS NULL
2008/11/24(月) 11:19:10ID:???むしろ10g以降はベンダー製のクラスターウェアは必須では無くなった。
0111NAME IS NULL
2008/11/24(月) 11:22:28ID:???drop tablespaceした時点のファイルが残っていようが、コントロール
ファイルとのSCNの同期が必要だから、バックアップからのファイルの
リストア及び不完全回復が必要。
というよりも、drop tablespaceした時点でO/S上のdbfファイルは
全く意味の無いものとなる。
ちなみに表領域レベルでの不完全回復は不可能なので、DB全体
レベルでの不完全回復が必要となる。
0112NAME IS NULL
2008/11/24(月) 23:17:59ID:???もしくはO/S上のデータファイルを有効利用したい時には、
トランスポータブル表領域を使うだな。
0113NAME IS NULL
2008/11/25(火) 07:43:57ID:???ありがとうございます。
ユーザーを削除した場合はフラッシュバックデータベースでいいみたいですが、
これは制御ファイルがユーザー情報を持っていないからと考えていいのでしょうか?
0114NAME IS NULL
2008/11/26(水) 01:33:00ID:???例えば ttp://www.oracle.com/technology/global/jp/documentation/products/oracle10g/102/index.html から
Windows共通のドキュメントをダウンロードしようとしても IEでエラーとなってしまいます
対象のページが古いのでしょうか?
0115NAME IS NULL
2008/11/26(水) 04:28:21ID:???普通に落とせるけど?
ちなみにブラウザーは火狐ね。
0116NAME IS NULL
2008/11/26(水) 04:32:56ID:???フラッシュバックデータベースは特殊なフラッシュバックログを
当てて過去の特定の時点まで戻す機能。
そして「表領域削除されている場合には使用出来ない」という
制限がある。
つまりDMLには対応していないって事だろ。
0117NAME IS NULL
2008/11/26(水) 04:34:54ID:???DMLにしか対応していないの間違い。
0118NAME IS NULL
2008/11/27(木) 06:45:33ID:???ありがとうございます
火狐入れて試したらダウンロードできました。
0119NAME IS NULL
2008/11/28(金) 01:36:14ID:???0120NAME IS NULL
2008/11/28(金) 02:32:20ID:t30Az4UPcentOS 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:???CPUの使用・占有率はどちらかというとO/S側のスケジューリング方式に
依存する部分が多いと思う。
複数CPUの効果を実感したければ、全件検索とかでParallelヒント句つけて
試してみ?
0122NAME IS NULL
2008/11/28(金) 10:22:56ID:???小規模だな。
1TB超えないと大規模とかって言えないよ。
0123NAME IS NULL
2008/11/29(土) 00:00:00ID:???0124ma
2008/11/29(土) 01:09:50ID:erpkj/yK初期化パラでその辺の設定は無効にしてあるのですが、
インスタンス停止起動時などはどうしても出力されてしまいます。
バージョンは10gR2です。
0125NAME IS NULL
2008/11/29(土) 02:13:32ID:???0126ma
2008/11/29(土) 02:22:20ID:erpkj/yK必ず出てしまうみたいなのですが、それを止める方法が知りたいのです。
0127NAME IS NULL
2008/11/29(土) 05:30:40ID:???つまり「仕様」だそうだ。
諦めろ。
0128NAME IS NULL
2008/12/04(木) 06:11:06ID:???ところが以下のコマンドを打つと、以下のようになります。
LSNRCTL> show current_listener
現行のリスナーはLISTENERです。
ちゃんとLISTENERもLISTENER0も起動しているのですが、何故でしょうか?
0129NAME IS NULL
2008/12/04(木) 09:11:50ID:???0130NAME IS NULL
2008/12/05(金) 02:06:34ID:???もしかしてやりたいのはこういう事か?
lsnrctl status LISTENER
lsnrctl status LISTENER0
0131NAME IS NULL
2008/12/05(金) 04:28:18ID:???statusコマンドで確認はしました。多分ですが、どちらも正常に表示されています。
それなのにshow current_listenerで片方のリスナーしか表示されなかったので
不思議でした。操作中のリスナーが表示されているってことなんですね。
ありがとうございます。
あと、ためしにDBサーバー上でoracle connection manager起動しようとしたんですが、
「cman.oraが見つからない…」というエラーが出ました。
ちゃんと、$ORACLE_HOME/network/admin配下に置いたのですが。
DBサーバーと同じサーバー上だから駄目ってことはないですよね?
0132NAME IS NULL
2008/12/08(月) 14:29:31ID:+eRptruMOracle10gに限らないと思うのですが、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:???ここにどうやってSQLを書けばいいか、重要なヒントがあるから読み解け。
http://www.ne.jp/asahi/hishidama/home/tech/soft/oracle/csvout.html
0134NAME IS NULL
2008/12/09(火) 23:59:19ID:???外部ストレージに、/ORAとして、DB領域を取っています。
内部ストレージに、/home等の領域があります。
内部ストレージのイメージバックアップを、ライフボートで取りました。
その後、DBが稼動し、にドンドン、データが入っていきます。
ある日、内部ストレージが死んだため、HDDを交換して
バックアップイメージからリストアしました。
しかしながら、sqlplusが、ORA-01033エラーを出し、起動しません。
分からないながらにも、調べた結果、
oracleのプログラムがインストールされた領域と、DB領域間で
整合性を取っているらしく、今回のケースでの、
内部ストレージのデータを、復旧させただけでは、
うまく動かないようです。
これ、何か一発でポンと直す方法ありませんか?
0135NAME IS NULL
2008/12/10(水) 00:15:17ID:???Oracleのバイナリーにパッチとか充てない限りは、普通はバイナリーとデータファイルとの
間に細かい整合性とかはないよ?
バイナリが突然見えなくなったみたいだから、細かいゾンビプロセスやらセマフォやら
$ORACLE_HOME/dbs/hc_<SID>.datとか残っちまってんじゃないの?
取り合えずゾンビプロセス全部killして、セマフォを綺麗にして、さらにDBをshutdown abort
してから起動してみたら?
例えインスタンスが起動していなくても、shutdown abortコマンド$ORACLE_HOME/dbs/hc_<SID>.datの
状態とか変わるし?
0136NAME IS NULL
2008/12/10(水) 23:00:07ID:yOj3MU8T何が原因なんでしょうか
再起動直後は安定しますがすぐ100%になります。
よろしくおながいします
0137NAME IS NULL
2008/12/10(水) 23:06:23ID:???ずっとってどれくらい? 1日放っておいてもそうなの?
アラートログに何も出てないの?
何も教えてくれないの? バカなの? 日本語書けないの?
0138NAME IS NULL
2008/12/10(水) 23:19:27ID:yOj3MU8T失礼しましたコアダンプはいてました。
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:???OEM関係じゃね?
OEM入っている?
0140NAME IS NULL
2008/12/10(水) 23:44:48ID:???入ってます
0141NAME IS NULL
2008/12/10(水) 23:46:16ID:???0142NAME IS NULL
2008/12/10(水) 23:59:04ID:???自己解決するしかないよ。残念!
0143NAME IS NULL
2008/12/11(木) 00:04:50ID:???どうも。
0144NAME IS NULL
2008/12/11(木) 00:47:52ID:???この刷れの>>918あたりを試してみ?
Oracle 総合 Session6
http://pc11.2ch.net/test/read.cgi/db/1162215948/l50
0145NAME IS NULL
2008/12/11(木) 03:18:55ID:???何らかのフィードバック書いてくれよ。
0146NAME IS NULL
2008/12/11(木) 08:21:38ID:???要求されている Debian 3.1 と 4.0 では違うと思うが。
0147NAME IS NULL
2008/12/11(木) 23:50:59ID:???放置してたら、マシンが唸って
その後安定したので、解決法はひたすら待つことかもしれません。
0148NAME IS NULL
2008/12/12(金) 03:00:10ID:???になるインスタンスの場合、TEMP表は 50MB ぐらいでいいんでしょうか。
一番大きいテーブルをソートするのに使う場合を想定ってことで。
でも、ソートするときOracleはデータ全部ソート対象にする?Raw IDのみの
並べ替えとかではないんでしょうか・・・
0149NAME IS NULL
2008/12/12(金) 03:29:10ID:???流れるSQLは全件検索ばかりなんですか?
普通はまず絞り込んでから、Sortしませんか?
それと流れるSQLは一個だけなんですか?
他にもSort処理は走らないんですか?
0150148
2008/12/12(金) 04:04:53ID:???たしかに、同時に使われる可能性もありますね(;´Д`A
ただ、ソートが絞り込まれた後にかかるかはSQLが今の時点では
わからないため不明です。
RowIDのソートだけなら領域ほとんど使わないと期待してる
んですが、データごとソートしてるんですかね。
0151NAME IS NULL
2008/12/13(土) 03:23:17ID:???0152NAME IS NULL
2008/12/13(土) 03:42:47ID:???普通にインデックス作ればいいと思うのだが。
0153NAME IS NULL
2008/12/13(土) 05:43:21ID:???メモリ沢山積んで、pga_aggregate_targetを多めに取って、あとは
細かくチューニングしていけば?
0154NAME IS NULL
2008/12/13(土) 18:30:05ID:???意地になってるのかな
0155NAME IS NULL
2008/12/14(日) 17:19:34ID:hLN0PBn0表領域のサイズはどのように決定していますか?
見積もり方法などありましたら、教えてください。
0156NAME IS NULL
2008/12/14(日) 17:58:48ID:???積み上げ
0157NAME IS NULL
2008/12/14(日) 18:13:36ID:???http://otn.oracle.co.jp/document/estimate/
0158NAME IS NULL
2008/12/14(日) 19:40:35ID:???0159155
2008/12/14(日) 21:39:48ID:hLN0PBn0ご返信ありがとうございます。
otnの見積もり、すごく参考になります。
0160NAME IS NULL
2008/12/15(月) 15:55:49ID:???Instant Clientのソースコード一式はフリーで入手可能でしょうか?
0161NAME IS NULL
2008/12/15(月) 15:58:26ID:???ライブラリとヘッダファイルだけあれば十分じゃないの?
0162NAME IS NULL
2008/12/15(月) 16:03:12ID:???CPUがIntel x86系ではなく組込用ボードのCPUなので、ライブラリ等はすべて
クロスコンパイルしなければ使えません。
普通にDLしてRPMでインストール出来れば楽なんですが。
それでソースが必要なので。
0163NAME IS NULL
2008/12/15(月) 16:11:37ID:Ls3H8s+e0001 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 NULL
2008/12/15(月) 16:23:41ID:???なるほど。でも一般には入手不能ですよ。
0165NAME IS NULL
2008/12/15(月) 18:36:51ID:???ググっていたらオープンソースのOracle互換 EnterpriseDBという製品を見つけました。
PostgreSQLベースですが、Oracleへのインターフェースを備えているようなので
これで試してみます。
ありがとう
0166NAME IS NULL
2008/12/15(月) 20:37:10ID:???どこにどんな 1 行を追加したいのかが分からないと話が始まらない
0167NAME IS NULL
2008/12/15(月) 22:43:10ID:???あと、さりげなくもすごいデータ内容だと思いました
0168163
2008/12/16(火) 09:00:16ID:???前任者が退職してクエリとか引き継がれずただ業務だけが押し付けられたもんでね
>>166
単純に数値型でいいんで履歴の若い順に1,2,3…って数字つけたいだけなんだ
場所は頭でもいいし最後でもいいんでとりあえずナンバリングするだけ
そうすればあとでクロス集計クエリ作るときにそいつを列にするだけでいいんで
…テーブルに出してからなんかしているんかなぁ
0169NAME IS NULL
2008/12/16(火) 11:24:53ID:???0170NAME IS NULL
2008/12/16(火) 21:14:16ID:???行じゃなくて列な。
row_numberでググれ
0171NAME IS NULL
2008/12/16(火) 21:50:49ID:???ならできるだろうに
0172NAME IS NULL
2008/12/17(水) 19:52:19ID:???FROM T1
GROUP BY C1,CASE C2 WHEN 1 THEN "AAA" WHEN 2 THEN "BBB" ELSE "CCC" END
これCASE文 2つ同じの書かないと駄目なんでしょうか?
0173NAME IS NULL
2008/12/17(水) 22:05:26ID:???0174NAME IS NULL
2008/12/18(木) 00:30:04ID:???今、OC4Jの乗っかってるOracleApplicationServer使ってるんだけど、
これはそのままOracle WebLogicServerに載せ替えられるんだよね?
JavaEEみたいな環境依存バリバリのプラットフォームを移行するのも
甚だ怖くはあるけど。。。
0175NAME IS NULL
2008/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 NULL
2008/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 NULL
2008/12/19(金) 22:19:26ID:???Silverの範囲にBronzeの範囲は含まれるのでしょうか
お願いします
0178NAME IS NULL
2008/12/19(金) 22:24:03ID:???もちろん範囲は違う。包含しているものではないからね。
何が違うかは試験範囲を見ればわかる。
http://www.oracle.com/global/jp/education/certification/examlist.html
0179NAME IS NULL
2008/12/19(金) 22:25:27ID:???ありがとうございますm(_ _)m
0180NAME IS NULL
2008/12/22(月) 03:21:40ID:???んでしょうか?winとlinuxだけ?
web鯖とかSolarisで動いてるんで、なんとかSolarisから叩きたいんですが。
0181NAME IS NULL
2008/12/22(月) 07:42:40ID:???http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10202solx86soft.html
0182NAME IS NULL
2008/12/22(月) 11:23:28ID:???0183NAME IS NULL
2008/12/22(月) 11:44:42ID:???http://www.oracle.com/technology/global/jp/tech/oci/instantclient/instantclient.html
0184NAME IS NULL
2008/12/22(月) 23:23:49ID:p8qevsH7RMANで、バックアップファイル名を、FB_20081222.BKPなどのように
したいのですが、
どのようなコマンドを打てばよいでしょうか?
どなたかご教授いただければ幸いです。
0185NAME IS NULL
2008/12/22(月) 23:38:48ID:???とかかな。
0186NAME IS NULL
2008/12/23(火) 00:01:41ID:BBlYK1lJありがとうございます。
日付がファイル名に入りました。ほっとしました。
0187NAME IS NULL
2008/12/23(火) 10:54:18ID:???要らないテーブルを削除する役割を承った
ダメだ
テーブル名にスペースがある時にドロップが出来ない
やり方を知ってる人がいたら教えて欲しいです。
作成したのは先人す
0188NAME IS NULL
2008/12/23(火) 11:25:57ID:???0189NAME IS NULL
2008/12/23(火) 11:45:29ID:???というか実行環境書こうぜ?SQL*Plusでいいのか?
0190NAME IS NULL
2008/12/23(火) 12:19:32ID:???aaaって名前のテーブルと
aaa bbbって名前のテーブルがあったとき
select * from aaa bbbってやったらどうなるんだろう。
0191NAME IS NULL
2008/12/23(火) 13:34:39ID:???ダブルクォーテーションでくくれば、いけんじゃね?
テーブルaaa bbbをフィッチ
select * from "aaa bbb"
テーブルaaaとテーブルbbbをフィッチ
select * from aaa bbb
試してないから、嘘っぱちかもだけど...
0192NAME IS NULL
2008/12/23(火) 15:21:34ID:???この業界では基本テクだろうけどね
念のため言っておくと character sensitive だ
0193192
2008/12/23(火) 15:24:14ID:???自分がやったのはこれだけね
他は知らん
0194192
2008/12/23(火) 15:25:13ID:???>"aaa bbb"
これだけね
他は知らん
0196NAME IS NULL
2008/12/23(火) 15:59:26ID:???数々の解答感謝
だが、ダブルクォートで囲むのはやった後だったんだ
作業してたのはLINUXのPLUなんだが
いっこうにそんなテーブル無い、頭おかしいの?死ぬの?(脳内変換)というエラーに悩まされ
後輩君に頼んだら一発で消しやがった
しかもCSEというツール使って
後輩ツエーと思ったが
ツールを覗いておかげでわかったんだ
テーブル名にスペースと制御文字が含まれているということを
WindowsのCSEでは見えるんだが
直接、叩いてた俺には見えなかったというわけで
スペースが入ってるだけと思わされたわけだ
こんなテーブルどうやって作ったんだ先人は
みんな、貴重な意見ありがとな
この寒い中、暖房効き過ぎな部屋にいる俺の骨身に染みたわ
0197NAME IS NULL
2008/12/25(木) 00:20:08ID:???ぐぐったらまったく同じ状況の人の質問があったんで載せます。
この人はどう解決したのか不明です。
過去に同じエラー出たって人いませんか?
ぜひ解決方法をお願いします。
------------------------------------------------------------
「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 NULL
2008/12/25(木) 13:43:23ID:a4IRyWzYOracle 10g Client x64 を
インストールしたいのですが
開始してすぐに
内部エラーが発生しました。"不明" "不明" "不明"
のように異常終了します。
どうしてでしょうか?
0199NAME IS NULL
2008/12/25(木) 21:12:38ID:???全角スペース使ってない?
0200NAME IS NULL
2008/12/25(木) 23:11:13ID:???どんなSQLを発行しているかによる。
>>198
クライアントつってもイロイロあるわけで。
何を開始したのかも分らないわけで。
0201197
2008/12/25(木) 23:47:37ID:lOTqMAhd全角スペースつかってないはず・・・
一応確認する
>>200
select文
select * from TABLENAME
where COLUMNNAME like 〜
あるテーブルまでくるとエラーが発生するんだよなぁ・・・
0202NAME IS NULL
2008/12/26(金) 00:12:19ID:???executeQuery に入れているSQL文を正確に出さないと意味無い。
JDBCの不具合の可能性もあるので thin なら OCI を試すとか、
結局はサポート情報で出せない情報かもしれない。
>あるテーブルまでくるとエラーが発生するんだよなぁ・・・
TABLENAME部を動的に作ってる?
単純なコードでも発生する問題?
まずは切り分け作業が重要なきがする。
0203197
2008/12/26(金) 00:42:32ID:???レスありがとう。
TABLENAME部分を置換して
複数のテーブルに対して同じ内容の
SQLを発行している箇所です。
置換することなくテーブル名を埋めた状態で実行すると成功した・・・
うーん・・・
0204NAME IS NULL
2008/12/26(金) 01:00:22ID:???なんか空になってるとか
0205NAME IS NULL
2008/12/27(土) 09:56:43ID:???ひとまず、そのテーブルの場合だけ、置換処理を経由せずに
ハードコーディングした処理にするのはどう?
if (tbl =="HOGE") {
ハードコーディングしたSQLを実行
} else {
従来の処理(置換処理あり)
}
これで通るなら、置換処理に何らかのミスがあるのでは。
0206NAME IS NULL
2008/12/30(火) 16:17:39ID:OXA5FuFu0207NAME IS NULL
2008/12/30(火) 20:21:26ID:???意味のないことをしないのが強者。
0208NAME IS NULL
2008/12/31(水) 04:49:56ID:???普通のVMWareだったらあるよ。
11g RAC組んで遊んだ。
0209NAME IS NULL
2009/01/01(木) 20:05:07ID:???VMWareによるRAC構築も普通になると思われる。
実際OracleVMもRACサポートを売りにしてるわけだし。
>>208
そういえば、オラクルの「VMWareお手軽RAC構築」って
見たような気がする。興味あるけど難しそうだ。
VMWareとRAC両方の知識が要るからね。
0210NAME IS NULL
2009/01/02(金) 01:47:29ID:???UPDATE時にWHERE句を指定せずに複数件一括で更新した時に
別のトランザクションでWHERE句を指定して一件一件更新していった場合にデットロックが
かかる可能性はありますか?
一括で更新した場合は更新対象のレコードは同時にロックを取得しているのでしょうか?
0211NAME IS NULL
2009/01/02(金) 02:08:18ID:???>デットロック
>デットロック
>デットロック
0212NAME IS NULL
2009/01/02(金) 05:05:52ID:???それの何処がデットロックになってるんだよ?
デットロックというのは、お互いが相手のコミットが実行されなければ
それ以上先に進めない状態の事だぞ?
0213NAME IS NULL
2009/01/02(金) 05:07:20ID:???VMWareの知識は大していらないよ。
ちょっと知識がいるとしたら共有ディスクを作成する所ぐらい。
それもググレば直ぐに出てくるしね。
後は普通のO/Sインストール作業とそんなに変わらない。
0214NAME IS NULL
2009/01/02(金) 17:04:52ID:???VMware ESXiでは、disk.locking = "false"が無視されてしまうから
同時に複数のノードを動かせないんだよね。
どうしたら解決できるか知ってる人いないかな?
検索しても見つけられなかった。
0215NAME IS NULL
2009/01/03(土) 01:51:26ID:???それだったら3台目のESXiを作って、そいつ上にiSCSIを構成すればいい。
つまり3台目は共有ディスク管理専門鯖という事ね。
0216NAME IS NULL
2009/01/03(土) 01:53:08ID:???http://www.oracle.com/technology/pub/articles/hunter_rac10gr2_iscsi.html
0217NAME IS NULL
2009/01/03(土) 02:38:13ID:???その場合、iSCSI+CFSとNFSで比較するとどっちがいいんだろうね。
0218NAME IS NULL
2009/01/03(土) 05:17:50ID:???RACなんだから、別にCFSだけには限定されないぞ?
実際に>>216だって、iSCSI使って、ASMで構成している例だし?
勿論Linuxだったら、iSCSI+OCFSという選択肢もありだろう。
問題になっているのは、どうやって共有デバイスをRACをインストールする
ノードから見せるかだろ?
0219NAME IS NULL
2009/01/03(土) 11:27:23ID:???おすすめは、iSCSI+OCFS2またはiSCSI+ASMだね。
0220NAME IS NULL
2009/01/03(土) 12:49:34ID:???普通なら扱いにくいrawも、iSCSIならtarget側でのバックアップが楽だからいいね。
0221NAME IS NULL
2009/01/03(土) 18:44:30ID:Sh+0ao+6RACの共有ディスクにiSCSIを使ってるとこある?
おすすめのiSCSI製品あったら教えて
0222NAME IS NULL
2009/01/04(日) 14:25:52ID:???ウチも鯖はLinuxでもストレージはEMCだよ。
0223NAME IS NULL
2009/01/04(日) 18:00:45ID:Ol//lS5Tデッドロックが発生する可能性はあります。
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 NULL
2009/01/04(日) 18:48:44ID:???0225NAME IS NULL
2009/01/04(日) 19:29:08ID:???確かにそう見えるねw
0226NAME IS NULL
2009/01/04(日) 19:36:31ID:???failしておしまいじゃね?
0227NAME IS NULL
2009/01/04(日) 19:56:47ID:???0228210
2009/01/05(月) 01:35:11ID:???ありがとうございます、
もうひとつ質問させてください。
この場合デットロックを回避する方法としては
セッション1とセッション2を両方とも一括更新にすれば回避できるのでしょうか?
それとも、更新順序のルールを決め1血1件更新していく方法しかないのでしょうか?
0229NAME IS NULL
2009/01/05(月) 08:07:15ID:???それ、本当にデッドロックか?
デットロックだと、ORA-00060が発生して、5分間は両方のトランザクションが止まるんだぞ?
0230NAME IS NULL
2009/01/05(月) 23:25:01ID:???0231NAME IS NULL
2009/01/06(火) 01:06:14ID:???0232NAME IS NULL
2009/01/06(火) 02:03:38ID:???デフォルトで検知まで5分間を要する。
0233NAME IS NULL
2009/01/06(火) 07:29:40ID:???かかんねえよ
やってみたら一瞬で検知したぞ?
0234NAME IS NULL
2009/01/06(火) 17:44:35ID:???移行元: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指定で戻す、無理、もっと良い方法がある……等ありますでしょうか。
0235234
2009/01/06(火) 17:56:50ID:???【user:oracle】 で 【oracleSE】
【user:oracleEE】 で 【oracleEE】
をそれぞれインストールしています。
0236NAME IS NULL
2009/01/07(水) 00:35:01ID:???もしくはデータファイルをそのままコピって来てEE側でコントロールファイルの再作成という
方法もあるだろう。
0237223
2009/01/07(水) 01:56:28ID:FkfkhGDT同一テーブルに一括更新を2つのセッションから同時に実行して、デッドロックが
発生したという話は聞いたことがないし、自分でテストをしても発生しなかったので
大丈夫だとは思いますが、100%の自信はありません。
0238234
2009/01/07(水) 10:11:58ID:???ありがとうございます。
ただRMAN Duplicationは、
> 複製データベースは、ターゲット・データベースと同一にするか、またはターゲット・データベース内の表領域のサブセットのみで構成
とあるので無理かと思います。
別々のホストであれば同一にしたのですが。
あと情報小出しで申し訳ないです。
ASMに登録してるのは異なるサイズのRawDeviceでして残念ながらコピーは……ddで、ってことではないですよね。
FULL戻しした場合、どこかのテーブルにSE/EE区別やらSID等の情報を持ってたら面倒だなぁと思いまして悩んでいました。
0239NAME IS NULL
2009/01/07(水) 11:06:33ID:???RMAN Duplicationが使えないという意味が分からん。
ソースDBとターゲットDBが同一ホスト内に存在する場合でも使えるし、別々の
ホスト上にそれぞれが存在しても使える。
「複製データベースは、ターゲット・データベースと同一にするか、またはターゲット・
データベース内の表領域のサブセットのみで構成」という意味は、例えばソースDB上に
A、B、Cという表領域が存在する場合、ターゲットデータベース上にはA、B、Cと
コピーしても良いし、A、Cだけコピーしても良いという意味だぞ?
ASMの場合にはRMANが使えないとかなり不便だぞ。
それこそRMANさえあれば、ASM上のデータベースファイルをファイルシステム上に
変換かけたりとかもできるしな。
0240234
2009/01/07(水) 14:44:37ID:???そうなんですか?
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 NULL
2009/01/07(水) 22:47:34ID:???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:???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:???ちなみに指定した時間までリカバリかける場合には、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 NULL
2009/01/09(金) 20:59:42ID:Q8QuRN460245NAME IS NULL
2009/01/09(金) 23:43:42ID:???ooとoの間に4つoが入ってる
0246NAME IS NULL
2009/01/09(金) 23:43:51ID:???0247NAME IS NULL
2009/01/10(土) 00:47:19ID:???おーおーふぉーおー
0248NAME IS NULL
2009/01/10(土) 01:23:52ID:???0249NAME IS NULL
2009/01/10(土) 14:21:41ID:???0250NAME IS NULL
2009/01/11(日) 16:43:12ID:???有益な情報もたくさんある。
0251NAME IS NULL
2009/01/11(日) 17:55:37ID:???0252NAME IS NULL
2009/01/12(月) 12:42:09ID:UYTJKBsr0253NAME IS NULL
2009/01/12(月) 12:44:30ID:???オラクルは、そんなこと言ってたらキリないよ。
0254NAME IS NULL
2009/01/12(月) 14:07:00ID:???LOBは Large OBject の略称であることは検索したら分かりましたが、
RAW については説明を見つけきれませんでした。
気になって、気になって……。
0255NAME IS NULL
2009/01/12(月) 15:25:51ID:???0256NAME IS NULL
2009/01/12(月) 15:37:24ID:???レスありがとうございます。
せっかく教えてもらったのに疑って申し訳ないのですが、
Google でそれを検索してもヒットがありません。
http://www.google.com/search?q="Record Access Write"
よければソース(公式リファレンスなど)もお教えください。
本当にワガママですみません。
0257NAME IS NULL
2009/01/12(月) 16:15:25ID:???RAWは略語ではなく、「生の」とか「未加工の」という意味の単語。
RAW型はバイナリデータをそのまま入れておくデータ型なので、そういう名称に
成っていると思われる。
0258256
2009/01/12(月) 16:22:19ID:???レスありがとうございます。
RAW は Oracle 独自の型名ではなく、
デジカメで撮影した画像の未加工データの「RAWデータ」と
同じ意味合いなのですね。
すっきりしました。ありがとうございます。
0259NAME IS NULL
2009/01/12(月) 18:28:15ID:???確かにその回答は正しいんだけど、そういう姿勢では底が知れるな。
0260NAME IS NULL
2009/01/13(火) 01:29:12ID:???実用的な使い方かは別として。
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:???補足するとしたら、SGA_MAX_SIZEを指定した場合、その値まで
メモリをリザーブしてしまう。
つまりO/S側から見たらSGA_MAX_SIZEで指定したメモリサイズ分
インスタンス起動時に取られているから、はっきり言って実用的
ではない。
0262NAME IS NULL
2009/01/13(火) 10:53:11ID:???特に異論はないんだけど、実際に動きを見ていると
IPCの確保は SGA_MAX_SIZE だけで、メモリの確保
は SGA_TARGET までに見えるんだよね。
OSの仕組みとか詳しくないんで、勝手な想像で、
予約だけして未確保の領域を作れると思ってる。
0263NAME IS NULL
2009/01/13(火) 16:00:48ID:???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 NULL
2009/01/17(土) 18:30:02ID:???戻すのに5日かかったよ ママン
0265NAME IS NULL
2009/01/17(土) 20:28:18ID:???乙
0266NAME IS NULL
2009/01/18(日) 17:20:13ID:D5SMNAz7レスポンスが遅い!とクレームが来ます。
SIerに問い合わせても10gにすれば解決する。と言うのですが、
Oracle9iを10gにバージョンアップするだけで、レスポンスは
向上するものなのでしょうか?
どなたかご教授いただければ幸いです。
0267NAME IS NULL
2009/01/18(日) 17:52:49ID:???おそらく、そのWebシステムの作りが悪いから、DB変えようがNW変えようがHW変えようが大してパフォーマンスは変わらない。
0268NAME IS NULL
2009/01/18(日) 17:59:36ID:???そもそも何のレスポンスが悪いのか書いてない時点で答え貰う気がないように見える
0269NAME IS NULL
2009/01/18(日) 19:19:06ID:D5SMNAz7すみません。
Oracleを再起動すると、データ更新が数秒で行えますが、
数日たつと、データ更新に10分くらいかかります。
システムを開発したベンダーは、10gにすれば解決すると言うのです。
32bit Windows Server 2003で、SGAは2GBしか使用できません。
boot.iniファイルをいじくって、3GBまで増やすと効果ありますでしょうか?
0270NAME IS NULL
2009/01/18(日) 20:00:01ID:???0271NAME IS NULL
2009/01/18(日) 21:05:14ID:???とりあえずなんで解決すると言い切ってるのかベンダに聞いとけ。
メモリリークとかのbugなのかも知れんし。
根拠なかったらキレてやっていい。
0272sage
2009/01/18(日) 22:31:58ID:s/0DH11a0273NAME IS NULL
2009/01/18(日) 22:48:17ID:???もしくは>>269みたいな話がでてるってことはプロセスがメモリ使い切ったって説明でもされたのかもしれないが
それだったら10gで解決するっていう根拠が推測できない
しかも、メモリの使用状況を確認するのが先決だろう
SI側も「プロセス空間2G使い切りました。だから/3GBオプション使いましょう」
って回答出しても「3Gなら解決すんの?根拠は?」って返されるのがオチだから
うやむやにしてるんじゃないの
メモリの事なら事象が再現しないと本当の事はわからないだろうなぁ
っていうか再現しても運がよくないとわからんだろう
0274NAME IS NULL
2009/01/18(日) 23:06:18ID:???0275NAME IS NULL
2009/01/19(月) 00:17:28ID:???3Gオプション入れるには根拠弱いだろ
3Gにした事で他アプリに影響でないか検証しなきゃならんし実質不可能
0276266,269
2009/01/19(月) 20:45:52ID:GgIO1862特にパフォーマンス面でありますでしょうか?
0277NAME IS NULL
2009/01/20(火) 00:26:40ID:???RBO->CBOに変わってるし、色々便利なところも増えてるから、
特に理由がなければ移行した方が良いよ。
0278NAME IS NULL
2009/01/20(火) 03:04:27ID:???RAC関係の機能は強化されているが、OLTP系の個々のパフォーマンスに
関してはそんなに目を見張る強化とかは無いよ。
ただ10gも大分落ち着いてきているし、9iのライフサイクルを考えたら、今の
内に上げておくのもいいとは思う。
でもどうせなら>>277が言っている様に、今の内に11gに移行出来るのなら
そうしておいた方が良い。
0279NAME IS NULL
2009/01/23(金) 05:07:58ID:???OCRやVoting DiskもASM上かCFSに置く事になるみたい。
0280NAME IS NULL
2009/01/23(金) 19:56:34ID:???あれ?11gからOCRとか共有ファイルシステムにも作れるようになってなかったっけ?
0282NAME IS NULL
2009/01/25(日) 04:14:48ID:???こないだDDLトリガーでDBMS_SQLつかってCREATE TABLEしてみたけどエラー発生して出来なかったけど、、、
そもそもDDLトリガーってDDLのLoggingくらいにしか使わないもの?
0283NAME IS NULL
2009/01/25(日) 19:19:34ID:???Email address contains invalid domain name.
ってメッセージがどんなメールアドレスいれてもでるんだが・・・どういうことなの
0284NAME IS NULL
2009/01/26(月) 21:56:54ID:???0285NAME IS NULL
2009/01/28(水) 04:38:52ID:???('A`)つ AUTONOMOUS_TRANSACTION
0286NAME IS NULL
2009/01/29(木) 01:13:43ID:???具体的にどういったトリガーを作成しようとしたんよ?
0287NAME IS NULL
2009/01/30(金) 18:38:58ID:???初期状態でどのくらいメモリ喰うの?
0288NAME IS NULL
2009/01/30(金) 18:46:44ID:???はじめから64bit版Windowsを考慮したほうがましなくらい
0289NAME IS NULL
2009/01/31(土) 00:20:40ID:???SQL*PLUSの実行結果として表示されたORAのエラーメッセージが文字化けします。
エラーメッセージを正しく表示させるにはどうすればよいでしょうか?
また、Oracleに設定する文字コードは何を設定するのが正しいでしょうか?
0290NAME IS NULL
2009/01/31(土) 00:25:16ID:???11gでは高速化したっつーけど、また重くなったよな。
速い!=軽い
重い<>遅い、では無いのか。
0291NAME IS NULL
2009/01/31(土) 01:12:12ID:???('A`)
0292NAME IS NULL
2009/01/31(土) 01:41:04ID:???>>285
自立トランザクションで解決出来る問題でも無いような、、、、
まちがってたらごめん
>>286
具体的には開発段階なのでテーブル作成したら、作成したテーブルの履歴テーブルが出来て、さらに作成したテーブルへ変更履歴を書き出す処理をしたかったんだけども
つまりDDL実行時に
・履歴テーブルのCreate
・履歴テーブルへの書き込みトリガー作成
をしたかった
履歴テーブルのCreate時にはこのDDLトリガーは走ってほしくないのでテーブル名での非対象リストを作ってたんだけど
ちょっとDDLトリガーに夢をみてしまったので実際のところ
みんなDDLトリガーって何につかってるのかなと聞いてみたかったのです
0293NAME IS NULL
2009/01/31(土) 15:47:52ID:???そんなの当たり前。
Oracleが使えるリソースを目一杯使って高速化すれば、全体として重くなることもあるわな。
0294NAME IS NULL
2009/02/01(日) 09:01:34ID:OWf5p2Ai顧客用dmpファイルを、顧客のOracle9iにインポートしていました。
10gから9iへのデータ保障ってされてないですよね?
みなさんなら、このようなことされますか?
0295NAME IS NULL
2009/02/01(日) 12:19:06ID:???その上司が警告を無視していない限り、何かあったら悪いのはOracle。
その程度に考えてないとこの業界やってられないぞっと。
0296NAME IS NULL
2009/02/01(日) 12:43:28ID:???重くなってても速くなっていれば、まだいい。
Vistaなんか・・・。
0297NAME IS NULL
2009/02/01(日) 13:45:26ID:???10gでExport
9iでImport
するにしてもOracleClientのVerが同じなら(EXP,IMPのVer)
特に問題なく業務で使ってた
データ保障はわからないですが
0298NAME IS NULL
2009/02/01(日) 20:06:42ID:???個人的には、OCFSが簡単で好きなんだけど。
0299NAME IS NULL
2009/02/02(月) 01:19:09ID:???しようとしたら出来なくて泣いた記憶ならある…
0300NAME IS NULL
2009/02/03(火) 05:13:43ID:???0301NAME IS NULL
2009/02/05(木) 22:53:38ID:???クライアントについての質問です。
今まではローカルのWindowsマシンのOracle10gに対してcseで接続していました。
今度はリモートのSolaris上Oracle10gに接続することになりました。
Oracleはcseでリモートに繋ぐ設定がないので途方にくれています。
発行したSELECTの結果をグラフィカルに表示してくれる程度でいいのですが、
無料のクライアントはないでしょうか。
0302NAME IS NULL
2009/02/05(木) 23:29:53ID:???0303NAME IS NULL
2009/02/06(金) 00:08:29ID:???ローカルにOracle入ってるなら tnsnames.oraで 接続情報書けば
CSEでも繋げるよ
ただ、CSEって8iくらいまでしか対応して無くて
集計関数使ったときにうまく動いてくれなかった覚えが、、、
0304NAME IS NULL
2009/02/06(金) 00:36:56ID:???ちょっと重いけど機能は折り紙付きですよ。
他にはJava製のAqua DataStudioとか?
0305NAME IS NULL
2009/02/06(金) 01:27:29ID:???標準偏差が駄目だった希ガス
あとはだいたい動く
0306NAME IS NULL
2009/02/06(金) 02:09:01ID:???0307NAME IS NULL
2009/02/06(金) 04:03:43ID:GlPU0aHoバージョン: Oracle 10g
Oracle 10gでユーザが所有するテーブルの一覧を取得する場合、
どちらが望ましいのでしょうか?
�@ SELECT * FROM USER_TABLES;
�A SELECT * FROM TAB;
�Aのデメリットって
・ TABLEだけでなくSYNONYMもヒットする
・ 得られる情報が�@より少ない
が挙げられると思うので、ふだんは�@を使ってるんですが、
もしかしてUSER_TABLESとTABって全然用途が別なのでしょうか?
0308301
2009/02/07(土) 02:39:12ID:???アドバイスありがとうございました
0309NAME IS NULL
2009/02/07(土) 17:24:38ID:???TAB は古いバージョンとの互換性のために残されている。
今は USER_TABLES (シノニム:TABS) で OK。
0310NAME IS NULL
2009/02/08(日) 03:01:19ID:???MySQLとはえらい違いだ
0311NAME IS NULL
2009/02/08(日) 09:42:10ID:???0312NAME IS NULL
2009/02/08(日) 09:51:30ID:???PGや開発系SEが片手間にさわるMySQLとは
プロジェクトの中の位置づけが違うぜ
0313NAME IS NULL
2009/02/08(日) 10:04:53ID:6340660iシェアを食われている汎用機型巨大データベースのスレはここですか?
0314NAME IS NULL
2009/02/08(日) 10:23:06ID:???0315NAME IS NULL
2009/02/08(日) 10:23:17ID:???面倒だというならわかるが、しにくいってのは?
無停止でメンテできる範囲はOracleが一番だと思うけど。
0316NAME IS NULL
2009/02/08(日) 15:20:28ID:???Oracle11gのDBに、クライアントからエクセルを使い
ODBC経由で接続を考えています。
ただ、クライアント側のORACLEが9iとか古いverで
ODBCドライバー自体のversionが古く、接続できるか確証がもてません。
サーバ側の11g環境はまだまだできそうになく、検証できない状態なんですが
そもそもODBCドライバって無料?
あとどのversionがどのDBと繋げられる対応表みたいなのありますかね?
検索しても全然でてこず。
ORACLEのHPのマニュアルは糞見たいに見づらく、
何考えてあのサイト作ってるのかわからん状態なので
誰かエロイ人教えてください
0317NAME IS NULL
2009/02/08(日) 20:54:10ID:???昔は、接続の対応表とか、OSバージョンの対応表とかがあったんだけど、
リニューアルされてから見づらくなったのは確かだねw
あと、Oracleの場合は、基本的にODBCより、一緒にDLできるOLEDBかoo4oを使う方が何かと便利だよ。
0318NAME IS NULL
2009/02/08(日) 21:40:21ID:???0319NAME IS NULL
2009/02/08(日) 21:42:32ID:???メンテ中の計画停止すら許されないDBならOracleしか選択肢ないけどね。
ちょっとくらい止めてもいいDBだったらOracleは選びたくない
0320NAME IS NULL
2009/02/08(日) 22:20:24ID:???0321NAME IS NULL
2009/02/08(日) 22:33:23ID:PTYbMZIT今度、会社のシステム構築する中で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 NULL
2009/02/09(月) 03:00:55ID:???マニュアルで事足りる。
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 NULL
2009/02/09(月) 15:09:50ID:???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だとどう書けばいいのだろう
0325324
2009/02/09(月) 15:22:04ID:???0326NAME IS NULL
2009/02/09(月) 15:25:31ID:???0327NAME IS NULL
2009/02/09(月) 16:02:09ID:???ORACLE MASTER Silver Database 10gを持ってるんですが、
今度、仕事で9iを使うことになりそうです。
今って、実際には9iのほうが稼働してるんですか?
それとも10g?
11gってことは無いですよね?
0328わかってない
2009/02/09(月) 19:22:33ID:???トン
教えてもらった情報を基に検索してたら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* スクリプトを実行して、次の作業を行います。
すべてのアクティブなプロセスを停止する
ファイルシステムのマウント解除
の記述がありました。
0329321
2009/02/09(月) 22:16:25ID:59eeKjdeありがとうございます。
oracleマンニュアルってwebで公開してるんですね。
とりあえず一読してみます。
0330NAME IS NULL
2009/02/09(月) 22:29:48ID:???サポート期限の問題やらもあり、9iは大分減ってきた。
しばらく主流は10gだろうな。
が、これまたサポート期限の問題で、これからの新規構築は11gが増えるだろうな。
現に俺も11g新規構築案件に携わってるし。
0331NAME IS NULL
2009/02/09(月) 22:59:39ID:???サポートは延長できるんじゃなかったか?
0332NAME IS NULL
2009/02/09(月) 23:03:25ID:???構築+運用で2015年まではサポートが必要
0333NAME IS NULL
2009/02/09(月) 23:41:06ID:???サポート期限切れから2年までなら料金割増で受けられる。
料金割増が微妙に引っ掛かる。。
0334NAME IS NULL
2009/02/09(月) 23:49:08ID:???結局5年サイクルで回していくのが一番効率良いのかもな。
って、毎回更新とか保守契約料とか考えるとDB・システム構築って金かかるよなー。
0335NAME IS NULL
2009/02/10(火) 09:35:32ID:???パッチは当ててないのです(現状なかなか当てずらい状況で)
で
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 NULL
2009/02/10(火) 13:51:30ID:???とりあえず思いつく所。
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 NULL
2009/02/10(火) 20:17:04ID:???CREATE GLOBAL TEMPORARY TABLE だと
セッションが切れてもテーブルが残ってしまいます。
セッションが切れたらテーブルにも消えてほしいのですが
どうしたらよいでしょうか。
0338NAME IS NULL
2009/02/11(水) 00:30:55ID:???さっさと64bitに移行すれば?
ハードウェアも安くなったのに、こねくり回す時間のほうが高くつく。
0339NAME IS NULL
2009/02/11(水) 07:01:45ID:???トリガーでは無理っぽいから、定期的にセッションが存在するかどうかを
モニタリングして、セッションが無くなったらdropするプロシージャでも
呼び出すとかじゃね?
0340NAME IS NULL
2009/02/11(水) 23:57:25ID:???レコード数が多い時か?
0341NAME IS NULL
2009/02/12(木) 09:26:59ID:???APEX日本語版の最新版(3.1.2?)を試したいのですが、
Oracle11gの評価版にはAPEXの最新版が含まれておりますでしょうか?
それとも3.1.1⇒3.1.2のアップグレードがひつようでしょうか?
よろしくお願いいたします。
0342NAME IS NULL
2009/02/12(木) 16:37:06ID:???expdp/impdpでの移行を実施中なのですが、
expdp時にNFSマウントしたディレクトリへダンプファイルを吐いておいて、
impdp時も同じディレクトリをマウントして読み取り、ということを考えていたら、
「ORA-27054: ファイルが作成される、または常に存在するNFSファイルシステムは、正しいオプションでマウントされません」
とのエラーが発生してしまいました。
NFSからダンプファイルを読み取ることはできないのでしょうか?
できないのであれば移行先のローカルへファイルをコピーしてからインポートしようと思います。
0343NAME IS NULL
2009/02/12(木) 18:32:59ID:???ありがとうございます。
0344NAME IS NULL
2009/02/12(木) 18:34:54ID:???フェッチせずにカーソルだけ進めたいときは
どうしたらいいんでしょうか
0345NAME IS NULL
2009/02/12(木) 23:31:25ID:???出来るよ。
ただし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 NULL
2009/02/12(木) 23:38:43ID:???シングルインスタンスは以下だ。
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 NULL
2009/02/12(木) 23:45:49ID:???どうやら3.1.2はパッチセットみたいだから、充てないとならないんじゃね?
0348NAME IS NULL
2009/02/13(金) 00:26:08ID:2HjPhOBi0349NAME IS NULL
2009/02/13(金) 11:01:32ID:???出来ました。どうもありがとうございます。
普段気を付けてても、慌ててるとまともに質問できなくなるもので…反省します。
ちなみに移行先のOSはSolaris 10で、DBはOracle11gのRACでした。
0350NAME IS NULL
2009/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 NULL
2009/02/14(土) 02:45:23ID:???APEXはiASが確かに動いていないとダメだけど、多分起動に失敗している
サービスはiAS Consoleだけかも知れない。
この場合は、Sun JVMのバグにヒットした可能性があり。
その場合は以下の手順を踏む必要があるが・・・。
1) %ORACLE_HOME%\bin\emwd.plをエディタで開く
2) "-Xmx"という文字列をサーチする。おそらく二つ見つかるはず。
その"-Xmx"という文字列の直前に"-XX:+ForceTimeHighResolution"という文字列を付け足す
3) サービスを起動
まあ、iAS Consoleは起動していなくても、APEXは使えると思うけどね。
0352NAME IS NULL
2009/02/16(月) 22:52:38ID:???入れてからPKとインデックスをつけようとすると
「スナップショットが古すぎます」 (´・ω・`)
データ量を減らして作業をしようと思ってSQLローダのTRUNCATEを使ってみる
「リソースビジー」 (´・ω・`)
仕方ないからDROP TABLEして再CREATEしよう
「リソースビジー」 (´・ω・`)
最後の手段全件DELETE
時間かかりすぎ(´・ω・`)
レコード数を0にするにはどう対処すればよいのでしょうか?
対象テーブルは自分以外は使用していません。
0353NAME IS NULL
2009/02/16(月) 23:26:26ID:???UNDO領域を増やす
0354NAME IS NULL
2009/02/17(火) 00:40:47ID:???コミットしてみ。
0355352
2009/02/17(火) 10:14:44ID:???>>353
システム開発の試験環境なのであまり環境設定を変える訳にもいかず…申し訳ありません
>>354
ログインしてコミットしても何も起きず…
SQLローダのトランザクションをコミットしないといけないのでしょうか?
0356355
2009/02/17(火) 12:22:27ID:???select countの結果は9000万件あるのでコミットは行われている
パラメータビューは権限不足で見られず
別のトランザクションが残留している?
こんな感じでした…
0357NAME IS NULL
2009/02/18(水) 12:37:36ID:???>SQLローダのトランザクションをコミットしないといけないのでしょうか?
意味わからんけど…
ダイレクトパスだとトランザクションの終了はされないからコミットしろ
0358NAME IS NULL
2009/02/19(木) 00:59:59ID:???>ログインしてコミットしても何も起きず…
まさか別セッションからcommitだけ叩いたとかw
0359357
2009/02/19(木) 06:57:09ID:???それがわけわからんかったw
つーか、SQL*Loaderが終わってなかったんじゃーの?
どういう指定したかわからないけど、ロード後にインデックス作りにいくと思う。
で、表共有ロックされてるからTRUNCATEできず、インデックスは使用不可になっていたのでは?
と思うけど、情報が少なすぎてよくわからん。
0360NAME IS NULL
2009/02/21(土) 15:19:58ID:Tn/yJXyX11にするかもしれないからとにかくデータだけバックアップしろと
言われました。
単純にデータだけバックアップしたいときはどうしたらいいんですかね。
インデックスやら計画とかはどうでもいいそうです。
前任者が生きていればいろいろ聞けたんですが
この前夢枕に立った時に聞いとけば良かったな・・・
0361NAME IS NULL
2009/02/21(土) 16:48:35ID:???エクスポート・インポートの単語が出ない時点で
サポート呼ぶか外注にやってもらうのが吉かと。
0362NAME IS NULL
2009/02/21(土) 17:45:47ID:???前任者のところにいって訊いてくればいい。
0363NAME IS NULL
2009/02/21(土) 17:49:32ID:???最悪、postgresとかmysqlに乗り換えることになっても何とかなりそうだし。
っていうか前任者何で亡くなったの?もしかして責任取らされて。。。
0364NAME IS NULL
2009/02/21(土) 19:21:41ID:???テーブル数とか,そのデータ量にもよるでしょ。
なんだこの素人質問。
0365NAME IS NULL
2009/02/21(土) 21:46:27ID:???素人はお前じゃボケ
0366NAME IS NULL
2009/02/21(土) 21:57:41ID:???0367NAME IS NULL
2009/02/21(土) 23:47:26ID:???ハードウェア障害が発生したとき等の為に日常業務として、
Oracleデータベースのバックアップは取得していると思いますが、
どういった方法で取得しているのでしょうか?
>>362
なかなか酷なことを言いますね。
行ったり来たり出来ると便利でいいですよね。
0368NAME IS NULL
2009/02/22(日) 01:28:25ID:???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 NULL
2009/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 NULL
2009/02/22(日) 01:38:47ID:???0371NAME IS NULL
2009/02/23(月) 01:38:00ID:???どんな感じか評価版みたいなのあるといいのですが、11gのトライアル版では駄目なようですし・・・
0372NAME IS NULL
2009/02/23(月) 06:40:40ID:???OSからOCFSは見えるので、普通にアクセスは可能。
でもDBに関係しないファイルの操作はサポートされない。
Windows版だとClusterwareに含まれてるはず。
クラスタ設定時にOCR、投票DiskをOCFSで設定すれ
ば自動的に構成されるはず。
# 11gのWinRACは未経験なので違うかも
0373NAME IS NULL
2009/02/23(月) 22:06:07ID:???Aデータファイル:auto extend(on)自動拡張で拡張中
Bデータファイル:auto extend(off)作りたてで空きいっぱい
A,Bが同じ表領域で新しいextendが作られる場合は
どちらに作られるのでしょうか?
素人な質問で恐縮ですが、
何卒。。。
0374NAME IS NULL
2009/02/24(火) 06:58:25ID:???extendとextentを混同してるような・・・大丈夫?
extend→データファイルの拡張
extent→データファイル内の表や索引を構成するセグメントの拡張
答え:
extendが作られる場合
extend onであるAに作られる。
Bはextendしようがない。
extentが作られる場合
空きいっぱいであるBに作られる可能性が高い。
0375NAME IS NULL
2009/02/25(水) 00:23:43ID:???動詞と名詞を混同してるような・・・大丈夫?
言いたいことはわかるが、extendは作られるのではなく、起きる。
0376NAME IS NULL
2009/02/25(水) 10:58:57ID:???構築・管理してた奴が突然辞めやがって・・・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 NULL
2009/02/25(水) 20:52:36ID:???undotbs.dbfが大きくなる原因・・・
UPDATE/INSERT/DELETE処理でしょうね。
例えば夜間に大きな更新処理をしていませんか?
工夫するとしたら・・・
・DELETE文を使っている場合、
TRUNCATE TABLE文に置き換えられないか検討する。
・適切な件数ごとに処理し、適宜commitする。
とりあえず、どの時間帯に、どういう処理が
実行されているかを、リストアップした方がいいと
思います。Linuxのcrontab?atコマンド?あたりで
定期的な処理が何か動いてませんか。
0378NAME IS NULL
2009/02/26(木) 00:29:11ID:???>質問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 NULL
2009/02/26(木) 01:51:11ID:???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 NULL
2009/02/26(木) 02:19:41ID:???0381NAME IS NULL
2009/02/26(木) 10:55:34ID:???lobは全文検索対象にできないの?
4000byte以上のテキストが入ってくる場合の
全文検索ってどうやってるの?>11g
0382376
2009/02/26(木) 12:46:51ID:???ありがとうございます。
毎朝にupdateしてるものがありました。
この辺から疑ってみます。
>>378
ありがとうございます。
URLもありがとうございます。参考にします。
Q1.AccessでODBC接続、直接参照してます(不精ですみません)
Q2.やっぱりそうなんですよね。
Q3.トランザクションは377さんの件と合わせて確認してみます。
UNDO_RETENTIONは900ですが、TUNE_UNDORETENTIONに30000になるケースも。
まずは基礎を勉強して、ある程度理解してから調査します。
根本的な部分を誤認しているようにも思うので。
ありがとうございました。
0383NAME IS NULL
2009/02/26(木) 21:21:40ID:???「AQ$_JMS_USERPROPARRAY」
が無いって怒られたんだけどどうすればいいの?
どっかに定義するSQLがあるんだろうと思ってgrepしてみたけど見当たらないよor2
0384NAME IS NULL
2009/02/26(木) 21:43:20ID:???全文検索って 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
0385381
2009/02/27(金) 00:20:44ID:???Oracle Textです。
今、テーブル作ってやってみたらできました。
clobでできました!
ありがとうございます!
0386NAME IS NULL
2009/02/27(金) 00:39:09ID:6rJ3Y1ClSQL*LoaderのINFILEに指定するファイル名って
ワイルドカードの*って使える?
0387NAME IS NULL
2009/02/27(金) 00:53:17ID:5E5n6s7G0388NAME IS NULL
2009/02/27(金) 06:49:34ID:???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 NULL
2009/02/27(金) 07:34:26ID:???システムの価格は65万ドル。
ソフトウェアのライセンス価格は168万ドル。
1ドル100円として6500万円、1億6800万円。
データ容量としては、12TB*n台。RAC前提。
経験を語る事が出来る奴がこのスレにいると思う?
俺は思わない。
0390NAME IS NULL
2009/02/27(金) 07:43:47ID:???1万行ずつ4個に分かれたファイルを全て指定する、
みたいな事は出来たと思うけど、*は使えなかったように思う。
制御ファイル内のINFILE指定以外にも
コマンドライン上のDATA指定の方法もあるはずだけど、
そっちはどうだったかな。
会社で暇が出来たら試せるかもしれない。期待せぬよう。
0391NAME IS NULL
2009/02/27(金) 08:03:38ID:???OS(シェル)に展開させれば済むのでは?
0392376
2009/02/27(金) 10:36:19ID:???その後、SQLをチェックしてみるとアホな副問合せが見つかりました。
首吊って死ねってくらいのアホさ・・・
作った奴を吊るし上げて、明日(今日)までに直せ!と言ったら徹夜してます。
それ以外にも前任のアホ設計がボロボロと。
それに気付いて、バレる(障害になる)前に辞めたんじゃないかと疑ってます。
3月9日から処理ピークだぁ。
それまでに直せるかなぁorz
本当にありがとうございました。
0393NAME IS NULL
2009/02/27(金) 14:46:56ID:???幸せになれた気がしたけどまだ早かったようだ
"SYS"."AQ$_JMS_USERPROPARRAY"の実行権限を与えてインポートしても
「オブジェクト型"SYS"."AQ$_JMS_USERPROPARRAY"が存在しない、または識別子が違っています」
って言われてしまう。
(AQ_ADMINISTRATOR_ROLEを与えても同じ)
オブジェクト自体は存在してて権限も与えてるのになぜ・・・○rz
0395NAME IS NULL
2009/02/28(土) 00:18:19ID:???日本だと Oracle Exadata Summit に参加した人か、中の人じゃ
ないと会話できないんじゃないかな。
経験者?国内で数人程度はいるのか?
>>393
幸せになれませんでしたか…。
Export/Import のコマンドライン詳細及び、エラー詳細は出せますか?
(エラーメッセージじゃなくエラーコードと前後関係も重要)
0396NAME IS NULL
2009/02/28(土) 02:27:17ID:???アフォは、アフォなりに
「誰も技術を教えてくれない。試行錯誤ばかりだ。」と思ってます。
可能であれば、責めるんじゃなくて、作業を分担してあげてください。
0397NAME IS NULL
2009/02/28(土) 03:20:45ID:l8Y/h12f受験するのに基礎�TとDBAのそれぞれの試験ごとに受験料が15000円+消費税がかかる認識で合ってますか?
0398NAME IS NULL
2009/02/28(土) 04:17:35ID:???OK
0399NAME IS NULL
2009/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 NULL
2009/02/28(土) 21:10:22ID:???バージョン単位での資格になってるから最新バージョンが出るとその度に同じBronzeでも取り直しは面倒すぎる。
せめてバカ高い受験料を少しでも安くしたり何か優遇してもらえれば有り難い所なんだけどなぁ。
特にplatinum所有者は受験料が10万以上するから負担が半端ないだろうから。
最近は重要視する会社も増えてるから受けさせられる事が多いが、
現場行くと資格あってもさほど役に立たないし単にオラクル社がバカ儲けするだけの資格にしか思えない。
0401NAME IS NULL
2009/02/28(土) 23:57:23ID:???何を今更
0402NAME IS NULL
2009/03/01(日) 14:03:30ID:???基本情報処理の国家認定の資格と同様に
業務上ではよく使用する簡単なクエリが出来て分からなくなったらリファレンス本見ながら対応すれば事が足りる
利用価値といえば客先業務で仕事貰う時の受け入れ面接時には多少アピール部分になるぐらい
データベースに少し詳しい人なんだなと
0403NAME IS NULL
2009/03/01(日) 14:35:46ID:???新SilverならDBA Iをとってるわけでしょ?あの内容をマスター
しているのであれば、チューニングや設計を行う素養はあると
みなせると思うけどなぁ。
単に「SQL書けます」って人とはそのへん違うと思うんだが。
>>402が旧Silverだったらスマン。確かにあれは意味がない。
0404NAME IS NULL
2009/03/01(日) 14:39:01ID:???とりあえずSilverまで取って、バージョンアップしていけばいいんじゃないですか?
あなたが有能なら会社が研修受けさせてくれるかもしれないし…
まあ、Platinumは10万ではともて取れないですけどね。
Silverで必要最低レベルぐらいだと思うけど、Platinum持っている人は相当できる人だと思う。
Platinumは実力があって、DB構築から管理まで、あらゆる事象に対して、素早く必要なマニュアルから情報を参照し
正しく適用できる能力が必要だと思う。
0405NAME IS NULL
2009/03/01(日) 18:22:50ID:TX+JAs9q現在、10gをアーカイブログモードで運用しています。
RMANで、system表領域をバックアップしようとしたところ
エラーになりました。
sysaux表領域や別の表領域はバックアップできるのです。
system表領域をRMANでフルバックアップは、できないのでしょうか?
どなたかご教授いただければ幸いです。
0406NAME IS NULL
2009/03/02(月) 01:35:54ID:eCie/yRb顧客DBをWebアプリケーションで作成更新するようにしたいと思っています。
(企業名,代表社名,所在,電話,メール,受注日,契約商品,個数,残ポイント,発送日) × 1,000,000件
のイメージのDBを作成したいのですが、
この程度の規模のDBの場合、
SQLサーバー,Oracle,MySQL,その他でどの種類が比較的多く利用されているでしょうか。
1000店ほどの店舗が日中にアクセスする予定です。
よろしくお願いします。
0407NAME IS NULL
2009/03/02(月) 02:07:44ID:???XEて用途限定なしだっけ?だったらXEでもいいかも。
0408NAME IS NULL
2009/03/02(月) 02:14:13ID:???リレーショナル(笑) と言われることも多いけど
今の時代DBにリレーショナルさせない方が主流になりつつあるしね
0409NAME IS NULL
2009/03/02(月) 08:43:19ID:???質問したり相談する相手がこのスレだけならば
素直にOracle買ってサポート受けるのが吉かとアドバイス。
0410NAME IS NULL
2009/03/02(月) 12:04:35ID:???当然出来る。
というか出来ないとフルバックアップの意味がない。
バックアップ先は何よ?
ディスク、それともテープ?
後はO/Sは何?
>>2ぐらい読んでから質問してくれ。
0411NAME IS NULL
2009/03/02(月) 19:49:17ID:3VFbPniHOracle Databaseのバージョンいくつに対応するんでしょうか?
0412NAME IS NULL
2009/03/03(火) 09:16:05ID:9sMragPdどこかに一覧あったっけ?
0413NAME IS NULL
2009/03/03(火) 20:35:38ID:o+hGzJeWttp://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 NULL
2009/03/03(火) 22:42:47ID:???某社がファイアウォールを増設した時は、彼らは
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 NULL
2009/03/04(水) 07:59:02ID:???0417NAME IS NULL
2009/03/04(水) 10:31:34ID:6d/7Bbw/ifconfig見ても無いっぽい。
これってDBもインストールしたあとじゃないと出てこないのかな
0418NAME IS NULL
2009/03/04(水) 11:14:05ID:???ちゃんとクラスタは構成されているのかな。
crs_stat -t とかで確認。
0419417
2009/03/04(水) 13:21:00ID:???$ crs_stat -t
CRS-0202: リソースが登録されていません。
テラインスコ失敗www
olsnodes -n だとちゃんと見えるんだけどなぁ
調べてたらvipca実行しろとか出てきた。 いつ実行するんだこれ。
0420NAME IS NULL
2009/03/04(水) 21:47:09ID:???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 NULL
2009/03/04(水) 23:57:13ID:???つか、インターコネクトにファイアウォール必要?
パブリックのクライアント-DBならCRSとか関係ないんだし。
>>419
せめてR2にしよう。
んで多分パブリック回線がプライベートIPウンヌン(非公開)
>>420
>他のOSで地雷が潰れるまで
PSRが同じで修正 Bug一覧が違うか?という点から何か
が見えてくるような来ないような。
0422NAME IS NULL
2009/03/05(木) 02:44:15ID:8flqGIdl既に設計されたDBにはパッケージ本体が作られており、その中に6つのプロシージャと2つのファンクションがあります。
また、パッケージ本体とは別にパッケージがあり、その中に5つのプロシージャがあります。
そこで質問です。なお、DB設計には手を加えないものとします。
1) プロシージャは値を返さないと聞きましたが、OUTの引数はどういう使い方をするのでしょうか?
OUTの引数は返り値だと思っていたのですが、どうも違うようです。
できれば、OUTの引数を取り出したいと思っています。
2) 5つのプロシージャは、パッケージ本体のプロシージャと同一名であり、
どうもこちらに渡して処理を行っているようです。
そこで、パッケージ本体にしかなさそうな1つのプロシージャと2つのファンクションは
パッケージ本体内でしか使用できず、外部からは直接使用できないのでしょうか?
0423NAME IS NULL
2009/03/05(木) 07:20:48ID:???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 NULL
2009/03/05(木) 09:34:12ID:47/HAHebulimitでプロセス数とファイルディスクリプタ数を変更しろとあるけど
ほんとにプロセス1万個とかファイル6万個とか同時に開くの?
0425NAME IS NULL
2009/03/05(木) 19:03:33ID:???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 NULL
2009/03/06(金) 00:01:16ID:???どの手順書を読んでも Xを飛ばす設定を最初に行いますが
これは必ず必要なものなのでしょうか。
各サーバのディスプレイに直接表示、では済まないのでしょうか
0427NAME IS NULL
2009/03/06(金) 07:13:37ID:???その場合、必要ではないです。
でも手順には書かれてあるべき内容です。
環境変数DISPLAYの使い方を知る
一般的なUNIX使いにとっては常識的な内容です。
今回はサーバ上のディスプレイにXを表示させているから
不要だな、とすぐ分かるからです。逆に記述が無いと混乱します。
Linuxのサーバが10台あると仮定します。
このとき私は、サーバ上のディスプレイを使ってインストールしたくありません。
私は、画面が広いX端末を1台用意して、
サーバの画面をXで飛ばさせて複数台を同時にインストールしたいです。
0429NAME IS NULL
2009/03/07(土) 02:46:12ID:???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 NULL
2009/03/07(土) 02:49:08ID:???同意。
ボラクル及びCRSのインターコネクトはプイラベートネットワークが基本。
よってF/Wや、iptablesの使用は全く推奨されていない。
CRSのインスコ時にダイナミックに使用ポートを決めてくる事もあるため、
F/Wやiptablesが有効になっていると、インスコそのものが失敗する事も
ある。
0431NAME IS NULL
2009/03/08(日) 20:43:07ID:???0432NAME IS NULL
2009/03/09(月) 10:48:41ID:???何コンプレックス?
0433NAME IS NULL
2009/03/09(月) 11:21:16ID:???0434NAME IS NULL
2009/03/10(火) 09:31:01ID:???Oracleの動作ログとか起動ログってどこにできるのでしょうか。
CRSの調子が悪くてログを見たいのですが
find $ORACLE_BASE -name "*.log" -mtime 1
とかやってもいっこも出てきません。
Oracleってログはインストール時にしか吐かないとか?
0435NAME IS NULL
2009/03/10(火) 14:10:06ID:bhlrenuUファイルじゃなくてASMで指定したロウデバイスに
ちゃんと保存されてるかどうかを確認したいんだが
なにをみたらいいのかね?
とりあえずEMで表領域のある場所を確認したら
+UNKO/test/datafile/
だったけど、これは実際にはどこを指してるのかわからん
Oracleのバージョンは10.1.0です
0436NAME IS NULL
2009/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;
0437436
2009/03/10(火) 14:53:35ID:???ディスクグループの名前をうっかり普通のインスタンス名と
同じにしてしまったので、なにがなんだかわかんなくなってたっぽい。
>こんな感じか。
をこれから試してみる。問題ないことが確認できたらあとでチューしてあげる
0438NAME IS NULL
2009/03/11(水) 06:54:04ID:???実機が無いから記憶で答えると、alert.logかな。
起動した、とかシャットダウンした、とか
ORA-600のエラー出した、とか、そういうのが出る。
インスタンス単位で出る。
あと、どこのクライアントから接続してきた、とかは
listener.log。これはリスナー単位で出る。
0439NAME IS NULL
2009/03/11(水) 22:16:31ID:???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 NULL
2009/03/11(水) 23:26:45ID:???EMCのBCVとRMAN組み合わせてみようと思ってるんだけど、使い勝手とか
戻しで注意する点とかもし知っていたら教えて欲しいんだけど?
0441NAME IS NULL
2009/03/12(木) 00:17:14ID:???教えてもらう態度じゃないな。墓穴掘って死ね。
0442NAME IS NULL
2009/03/12(木) 11:19:27ID:DMHovpVAの下に3Gくらいの巨大なファイルがいっぱいあるんだけど
core.1234
みたいな名前のはやっぱりただのcoreファイルかな。
こんなの消しちゃってもいいよね?
0443NAME IS NULL
2009/03/12(木) 22:25:30ID:???提出する必要性を考えてスタックトレースだけ取って消去。
0444NAME IS NULL
2009/03/13(金) 09:39:20ID:???で出力される名前が省略されずにフルで見れるを方法を教えてください。
あと、なんでいつもOracleはこんな適当な仕事をするのかも教えてください。
0445NAME IS NULL
2009/03/13(金) 12:33:08ID:???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 NULL
2009/03/13(金) 22:54:03ID:???しっかり自分で調べてから物事はたずねてくれ。
オラクルがアバウトな感じなのはアメリカを象徴するような会社だからだ。
嫌なら使うな。
0447NAME IS NULL
2009/03/14(土) 05:55:46ID:mzAyY/XE0448NAME IS NULL
2009/03/14(土) 09:39:58ID:???0449NAME IS NULL
2009/03/14(土) 10:25:54ID:???以前はあったがいまは公開されている情報がない。
KROWN にはあるから探してみな。
0450NAME IS NULL
2009/03/14(土) 12:10:19ID:???9iクライアントから11gに繋ぐ場合、クライアントのバージョンが9.2.0.4以降である必要がある。
9.2.0.3より下位バージョンは例え繋がったとしてもサポート外だそうだ。
0451NAME IS NULL
2009/03/14(土) 14:22:43ID:???0452NAME IS NULL
2009/03/14(土) 14:41:47ID:???0453NAME IS NULL
2009/03/14(土) 18:11:16ID:???努力しないで他人の力をあてにすること。
お前こそ日本語、わかってるか?
0454NAME IS NULL
2009/03/14(土) 18:48:56ID:???違うな。
俺は浄土真宗ではないけれども、それは本来の意味ではない。
バカは黙っとれ。
0455NAME IS NULL
2009/03/14(土) 18:51:30ID:???もしかしてお前在日か? 死んで詫びなさい。
0456NAME IS NULL
2009/03/14(土) 18:58:37ID:???0457NAME IS NULL
2009/03/14(土) 19:01:13ID:???0458NAME IS NULL
2009/03/14(土) 20:09:42ID:???0459NAME IS NULL
2009/03/15(日) 01:37:24ID:???0460NAME IS NULL
2009/03/15(日) 23:47:42ID:hRb5KBp60461NAME IS NULL
2009/03/16(月) 08:17:49ID:???0462NAME IS NULL
2009/03/16(月) 09:04:31ID:???0463NAME IS NULL
2009/03/16(月) 16:50:29ID:???0464NAME IS NULL
2009/03/16(月) 18:06:54ID:???これより質問板再開。
0465NAME IS NULL
2009/03/18(水) 02:27:00ID:???ver9.2.0.5です。
訳あって、standbyとして動いているサーバを
他の用途に使用したいと考えております。
その際、primary側で何か設定を行う必要はあるのでしょうか。
放置でも問題無いように思うのですが、、駄目でしょうか。
init.oraにあるdataguard用の設定をコメントアウトして
再起動した方が良いのでしょうか。
また、注意点、正式な手順があるなら
ご教授頂きたく。。
よろしくお願いします。
0466NAME IS NULL
2009/03/18(水) 03:51:20ID:???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 NULL
2009/03/20(金) 04:24:38ID:???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 NULL
2009/03/20(金) 04:27:05ID:???でKROWNを検索してみたところ、
オイラは今、ちょっくら青ざめている状況です。
長い間8.1.7利用してて、
2年前から10gR2利用のオイラですけど、
こうなったら、初期化パラメータで
_complex_view_merging=false
設定で行こうかと思ってます。
経験談持ってる人は語っていただけませんか。
0469NAME IS NULL
2009/03/20(金) 05:11:23ID:???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 NULL
2009/03/20(金) 09:20:21ID:???そんなことここで言われてもな。
そんなに気になるなら、サポートに強く言って、修正してもらえ。
0471NAME IS NULL
2009/03/20(金) 10:02:49ID:RBnEHUMv自分の担当しているところではFALSEに設定している。
すでに複合ビューマージが使われている場合には
そのパラメータをFALSEに設定してしまうと
設定したことにより複合ビューマージが行われなく
なってしまうので、性能劣化が発生する可能性がある。
ただ、結果不正と性能劣化のどっちがましなのかと考えると
性能劣化なので、そこは我慢するしかないのかと思う。
0472NAME IS NULL
2009/03/21(土) 23:34:57ID:???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 NULL
2009/03/22(日) 01:36:18ID:???まず、プライマリ側落ちててフェールオーバーできなかったらなんのためのデータガードだと・・。
それからマニュアルないとか言い訳にならない。
インターネットつながってる時点でマニュアル見られるんだから。
もっと色々自分で調べるクセをつけないと生き残れないぞ。
0474NAME IS NULL
2009/03/22(日) 08:31:14ID:???オフィシャルに回答できるのは、ORACLE社だけだから、
サポート契約を検討してね。
[原因]
プライマリ・データベースが最大保護モードだから。
[参考]
モードには以下の3つがあります。
・最大保護モード
・最大可用性モード
・最大パフォーマンスモード
確認方法は、select protection_mode from v$database;です。
467さんの希望は、最大可用性モードか、最大パフォーマンスモード
なんだと思います。一度、モードを確認してください。
0475NAME IS NULL
2009/03/22(日) 18:29:55ID:???プライマリ・データベースのselect protection_mode from v$database;の
結果は「MAXIMUM PERFOMANCE」でした。
設計書にもモードは「最大パフォーマンスモード」と記述があり
上記は間違いないと思います。
私の希望は、、、「最大パフォーマンスモード」で
プライマリが壊れた状況において、スタンバイ側で
ALTER DATABASE ACTIVATE STANDBY DATABASE;の実行により
ORA-01154などでエラーとならず、フェールオーバーさせることです。
また、サポート契約の件、検討します。
ありがとうございます。
0476NAME IS NULL
2009/03/23(月) 00:15:19ID:???0477NAME IS NULL
2009/03/23(月) 12:59:46ID:???ッアッーーー!!
0478NAME IS NULL
2009/03/23(月) 18:55:56ID:nLPi1KZAlsnrctl 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 NULL
2009/03/23(月) 19:15:09ID:???じゃあ書き込むなよ。
せっかくなので余談だが、RACだとデフォでlistener_SIDになる。
0482NAME IS NULL
2009/03/23(月) 22:41:19ID:???467です。できましたT_T
ありがとうございましたT_T
0483NAME IS NULL
2009/03/24(火) 00:32:57ID:???すが、クライアントから接続出来ません。
LISTENERが起動している事は確認しました。また、以前XPにクライアントを入
れていた際は普通にサーバに繋がっていました。
サーバ機上ならSQLPLUSも問題なく動いています。tnsnames.oraの内容、各マシ
ンのFW、ネットワーク、一通り確認したつもりです。
svr2k3→svr2k3の組み合わせだと別途注意すべき点があったりしますでしょう
か?
0484NAME IS NULL
2009/03/24(火) 03:45:28ID:???どんなエラーがクライアント側に返ってきているんよ?
sqlnet.oraのNAMES.DIRECTORY_PATHにWorldとか指定されていて
「繋がらねぇ〜」とかってオチだったりしてな!?
0485NAME IS NULL
2009/03/24(火) 18:58:38ID:???一旦、手動にして止めたつもりでも、
知らんうちに有効になったりして
「アレ?」とトラブルになる。
俺はORACLEをインストールしたサーバでは、
スッパリ諦めて無効にしているが、自己責任で。
0486NAME IS NULL
2009/03/24(火) 19:06:00ID:???>>468です。経験談ありがとうございます。
オイラが信頼するオイラ以上の知識を有する知り合いにも
相談しました。ちなみに、>>471さんと同意見でした。
0487NAME IS NULL
2009/03/27(金) 16:52:45ID:???で出てくる CLUSTERID ってなに?
ググってもこれの解説してるところがない。
0488NAME IS NULL
2009/03/27(金) 22:59:51ID:LUFIdYWI0489NAME IS NULL
2009/03/28(土) 00:51:00ID:???TAB自体が下位互換性のために未だに使用できる様になっているけど、
使用は推奨されていない。
0490NAME IS NULL
2009/03/28(土) 20:01:59ID:???ありがとう。これからはALL_TABLES使います。
0491NAME IS NULL
2009/03/29(日) 21:41:29ID:tW/sgpmt大まかな作成の流れを教えて下さい。
DB作成未経験の初心者です、よろしくお願いします。
0492NAME IS NULL
2009/03/29(日) 22:11:22ID:???- DBCAを起動する
- ASMの設定をする
- DBを作成する
こんだけ。簡単だよ。
0493NAME IS NULL
2009/03/29(日) 22:35:00ID:tW/sgpmtなるほど、それだけでいいんですね。ありがとうございます。
0494NAME IS NULL
2009/03/30(月) 02:03:04ID:???0495NAME IS NULL
2009/04/01(水) 11:16:41ID:???NUMBER型の引数の値を一度NUMBR型の変数に代入し
RETURNにその変数を指定すると
使用不可コードのワーニングが出て困っています。
RETURNの型はNUMBER型です。
引数をそのままRETURNで返すとワーニングは出ません。
何が悪いのでしょうか…
2バイト文字がいけないのかと全て無くしても変わりませんでした。
0496NAME IS NULL
2009/04/01(水) 11:55:59ID:???0497NAME IS NULL
2009/04/01(水) 21:41:52ID:???まじで!
はじめてしったわ・・・
0498NAME IS NULL
2009/04/02(木) 07:34:24ID:???本当にそのレベルの処理なら、ここで
PL/SQLのコードを晒しても問題ありません。
公開したくない情報を削って、
晒してください。
また、ORA-XXXXのエラー番号、
ORACLEのバージョン、オペレーションシステム
についても、情報が必要です。
このスレ住民は、なぜかとても親切なので、
再現性を確認してくれる可能性が高いです。
0499NAME IS NULL
2009/04/02(木) 15:58:10ID:???HEADER_STATUSのとりうる値とか、解説がないから
見ても異常かどうか勘でしか判断できない
v$asm_diskgroupなんかもよくわからんよね
0500NAME IS NULL
2009/04/02(木) 20:43:48ID:???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 NULL
2009/04/03(金) 01:36:14ID:???結構有名なんだけどな。
一応ソースな。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4249.htm#sthref2082
0503NAME IS NULL
2009/04/03(金) 16:37:36ID:q9U6bHadずっとパスワードエラーでログインできないなら まだわかるんだけど
ときどき ってのが腑に落ちません。
これって、どっちかの系でユーザがいないってこと?
そんなことってRAC構成でありうるんですか・・・?
0504NAME IS NULL
2009/04/03(金) 23:52:18ID:???エスパーじゃないから、プラットフォームも分からないし、DBのバージョンも知りません。
そんなので答えられると思うんですか?
0505NAME IS NULL
2009/04/04(土) 00:33:11ID:???ありがとうございます。 とりあえず よくあるトラブルではないことと、
OSやバージョンに依存する可能性の高い、そこそこ珍しい現象であること
がわかりました。
バージョンですが、10gの10.1.0.2です。OSはRHEL3です。
RAC構成でASMを使っています。
0506NAME IS NULL
2009/04/04(土) 03:35:36ID:???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 NULL
2009/04/04(土) 03:36:48ID:???正:SQL Server
0508NAME IS NULL
2009/04/04(土) 09:03:29ID:???0509NAME IS NULL
2009/04/04(土) 10:30:08ID:bkcQQ2Bx(
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 NULL
2009/04/04(土) 12:09:11ID:???可能性としてはロードバランサーがトップにあって、片側のRACのパスワードファイルが
正しく設定されていないとかかな。
0511NAME IS NULL
2009/04/05(日) 15:21:30ID:JiS+iut1会社から発行されたチケットを使用してテストを受けようと思うのですが、
会社がチケット番号などから自分のテスト結果を参照することは
可能でしょうか?
0512NAME IS NULL
2009/04/05(日) 18:25:25ID:???0513NAME IS NULL
2009/04/06(月) 00:56:49ID:A28vG0H2http://otn.oracle.co.jp/forum/message.jspa?messageID=6016756
0514503
2009/04/06(月) 03:00:44ID:???すみません。これは全然関係ないです。
>>510
すみません。ロードバランサーは使っていません。
ただ、RACが交互に系を切り替えてるような気はします。
そして片方が正しく設定されていないのだと思います。
>>506
OS認証は使っていないはずですが、前任者が環境構築するときに
片系はOS認証、もう片系はOracle認証なんてことをやっちゃってるかもしれません。
そんなことできるのか知りませんが。
0515NAME IS NULL
2009/04/06(月) 19:14:03ID:???>そして片方が正しく設定されていないのだと思います。
だったら、片側のインスタンスにだけ接続が行くように設定して試してみれば良いやん。
active_instance_count を設定すれば、どちらか片方のインスタンスのみに接続されるようになる。
0516NAME IS NULL
2009/04/07(火) 01:19:17ID:???ちょっとは自分で学ぼうや。
0517NAME IS NULL
2009/04/07(火) 10:48:53ID:???ロードバランサーがなくてもリスナーサイドロードパランシングが使われてるんだろ。
いずれにせよ自分のPCにでも各インスタンスに対するTNSエントリを設定してsysで
繋げてみればいい。
それでどっちかでエラーになるのならパスワードファイルを再作成だな。
0518NAME IS NULL
2009/04/07(火) 11:22:08ID:???0519NAME IS NULL
2009/04/07(火) 22:25:46ID:???まあ、日本語50音直打ちだから許してくれ〜い。
欧州、そして今はアメリカでDBAとして働いているが、日本語キーボードはいつも俺と共にあるw
英語101キーボードの配列なんかで仕事が出来るかよ。
0520NAME IS NULL
2009/04/08(水) 17:25:28ID:epT/t44l0521NAME IS NULL
2009/04/08(水) 17:48:11ID:???0523NAME IS NULL
2009/04/08(水) 19:59:36ID:???ッ!?
0524NAME IS NULL
2009/04/09(木) 22:13:13ID:???ルールベースが採用したインデックスが遅かったので、ヒント句で違うインデックス指定したら早くなったんだけど
俺、オラクルに勝ったと思っていい?
0525NAME IS NULL
2009/04/09(木) 22:16:28ID:???0526NAME IS NULL
2009/04/09(木) 22:34:40ID:???0527NAME IS NULL
2009/04/09(木) 22:38:08ID:???SQLサーバのテーブル(中身も)をオラクルに入れたいんだけど、
オラクル⇒オラクルだとIMP,EXPだと思うけど
SQLサーバ⇒オラクルだとどういう方式があります?
0528NAME IS NULL
2009/04/10(金) 04:39:58ID:???格好良いことやりたのならGeneric Connectivity。
力技でやるのならcsvで吐き出したものをローダー使ってぶち込む。
0529NAME IS NULL
2009/04/10(金) 08:21:34ID:wKOZtIHPぶち込むとか、カッコええ
男の仕事って感じ
0530NAME IS NULL
2009/04/10(金) 10:10:39ID:???オラクル10gのテーブルに格納したいのですが
一部の項目がCOBOLのパックになってます
この項目をNUMBER型に格納するのに
一番スマートなやり方教えてください
0531NAME IS NULL
2009/04/10(金) 23:19:33ID:???コボラーじゃないから良くわらんが、分かる人がみれば以下の説明で分かるか?
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 NULL
2009/04/12(日) 23:47:38ID:XwgobUls今、oracle bronze10gをもっているのですが、
silver11gを取得するには、silverDBA11gを取得すれば
いいのでしょうか?
それとも、bronze10gなので、silverDBA10gしか受験で
きないのでしょうか?
ご教授よろしくお願いします。
0533NAME IS NULL
2009/04/13(月) 00:27:22ID:???アホなのか?
0534NAME IS NULL
2009/04/13(月) 05:51:31ID:QgB5aUsWクエリの質問です。
ある結果から、頭一文字で集計することは出来ないのですか?
select count(*),tag from hoge
group by SUBSTR(aaa , 0 , 1) tag
こんなイメージなのですが、
どのようにすればよいのでしょうか。
0535534
2009/04/13(月) 16:25:47ID:???自己解決。
普通に出来ました。
select SUBSTR(aaa , 0 , 1) count(*) from hoge
group by SUBSTR(aaa , 0 , 1)
0536NAME IS NULL
2009/04/13(月) 22:25:05ID:919/buMn0537NAME IS NULL
2009/04/14(火) 14:30:04ID:???ちょっとカラムの数を半分くらい減らそっかな と思って
ALTER TABLE hoge DROP (unko101,unko102, ... ,unko200);
というクエリーを実行したら、ものすごい時間がかかって全然おわらない
んだけど、これをもっと高速にしたいときはどうしたらいいの?
チェックポイントってのが問題なの?
バックアップはとってあるので、チェックポイントとかどうでもいいんです。
0538NAME IS NULL
2009/04/14(火) 20:50:04ID:???そういう糞テーブル設計者を呪う。
0539NAME IS NULL
2009/04/14(火) 21:08:16ID:BaBqmTPeよくあるよ。
0540NAME IS NULL
2009/04/14(火) 21:19:18ID:???遅いのはインデックスの列も削除してるとか、hogeを参照してるセッションがあるとかが原因かもね
カスケードオプションとかの制約とかも中尉。
入れ物を新しく作って入れなおした方が速いかもしれぬ
0541NAME IS NULL
2009/04/14(火) 21:23:13ID:BaBqmTPe>DROP (unko101,unko102, ... ,unko200);
見た感じ、カラムを200から100に減らすのか?
それだったら、新規にテーブルを作って、INSERT INTO SELECT した方が早いんじゃないかなぁ。
さらに・・・、ディスクに余裕があるならば、旧テーブルと新テーブルで格納するディスクを分ける。
あと、ノーアーカイブログモードにする。
当然、INSET INTO SELECTする時は、パラレルとNOLLOGINGモードで実行な。
処理時間はレコード件数ではなく、テーブル容量に依存する。
上記対策を組み合わせれば、かなり早くなるとは思う。
0542NAME IS NULL
2009/04/14(火) 21:31:21ID:???と思ったらカラムが200もあんのか!そんなにあるとどのカラムが何に使ってるか把握できんだろ
列削除したら動かなくなるプログラムが出てくるんじゃないか?
0543NAME IS NULL
2009/04/14(火) 22:17:04ID:???結局30分ほどほっといてジャンプ読んでたら終わってました。
>>538
すでに実施済みです。
>>539-542
実はこれはほんの序章にしか過ぎなくて、このあとに
1000カラムの100万件が待ち受けてるのでした。(800カラムくらい削る予定)
まさに1000万パワーズです。泣きそうです。
>>541を参考にしてがんばります。
0544NAME IS NULL
2009/04/14(火) 22:22:06ID:???( д)゚ ゚
0545NAME IS NULL
2009/04/14(火) 22:57:08ID:???設計者、汎用機上がりだろ?
カラムが1000とかって、RDBMSで絶対にありえない。
0546NAME IS NULL
2009/04/14(火) 22:57:47ID:BaBqmTPe> 1000カラムの100万件
ワロタww
まぁALTER TABLE DROPした方が楽と言えば楽だけど、その場合はテーブル容量が変わらないから注意してね。
実行後にshrinkしとかないと無駄な領域が増えるばかりでなく、フルスキャンした時にパフォーマンスが劣化するよ。
0547NAME IS NULL
2009/04/15(水) 00:25:53ID:???0548NAME IS NULL
2009/04/15(水) 00:47:05ID:???行連鎖・行移行しまくりなんだろうなぁ。
怖いなぁ。
0549NAME IS NULL
2009/04/15(水) 04:06:11ID:???Oracle Migration Workbench
0550NAME IS NULL
2009/04/16(木) 18:39:10ID:bVm5EM13インストール時に、
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 NULL
2009/04/16(木) 18:51:12ID:???0552NAME IS NULL
2009/04/16(木) 18:54:28ID:???./runInstaller -ignoreSysPrereqs
0553NAME IS NULL
2009/04/16(木) 18:54:42ID:???0554550
2009/04/16(木) 19:21:54ID:bVm5EM13./runInstaller -ignoreSysPrereqs
./runInstaller -ignoreSysPrereq
試しましたが、結果は変わりませんでした・・
0555NAME IS NULL
2009/04/16(木) 19:51:28ID:???0556NAME IS NULL
2009/04/16(木) 19:54:49ID:???おとなしくミラクルでも使っとけ。
0557550
2009/04/16(木) 20:36:54ID:bVm5EM13結局、インストーラの、iniファイルに手を加えて、
そこのエラーは通しました。
まだ、インストール成功していないのですが・・・、
上からの指示でなければ、違うOSにするんですけど・・・
0558NAME IS NULL
2009/04/16(木) 21:43:44ID:???同じ無料LinuxOSだったら、Oracle Enterprise Linux の方が相性が良いのに。
0559NAME IS NULL
2009/04/16(木) 22:08:57ID:???なんだ。エラーはそこじゃないな。
0560NAME IS NULL
2009/04/16(木) 22:35:02ID:???気を付けるとしたら、ちゃんとパッケージが入っている事ぐらいだったか。
それもyum使えば入るしね。
0561NAME IS NULL
2009/04/16(木) 23:15:29ID:???これじゃね?
http://otn.oracle.co.jp/forum/thread.jspa?threadID=35004153&tstart=0
0562NAME IS NULL
2009/04/17(金) 06:03:44ID:???いくらなんでもXでつまづく事はねぇんじゃね?
0563NAME IS NULL
2009/04/17(金) 09:13:56ID:???サポートされてないのに。
教育のため??
0564550
2009/04/17(金) 19:29:28ID:kWFhDTERLinux系の環境をいじった経験がなく、非常に混乱していました。
GUIでインストーラを立ち上げて、インストールすることができました。
皆さん、ありがとうございました。
CentOSにOracleというのは、教育のためというわけではないのですが、
諸事情あって、そういうことになってしまいました(汗)
0565NAME IS NULL
2009/04/17(金) 23:55:14ID:???0566NAME IS NULL
2009/04/19(日) 11:04:10ID:QT17jzFz757 :名無しさん@お腹いっぱい。: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 NULL
2009/04/20(月) 10:09:06ID:???会社指示で勉強ついでにオラクルマスターの資格も取れればと思いWindows上で環境を作ろうとしています。
オラクルマスターの参考書にバージョン11gの30日分の体験版DVDが同梱されていたのでひとまずそれを使っていればいいかなと予定はしているのですが、
使用期限切れが心配なため、無償で期間制限ない体験版をさがしています。
バージョンは11もしくは10.2のどちらでもかまいませんので教えていただけませんか?
本来会社でライセンス買ってくれればいいんですが実務でなく勉強だけなら買えないといわれたのでこんな状況になってます。
0568NAME IS NULL
2009/04/20(月) 11:02:52ID:???0569NAME IS NULL
2009/04/20(月) 12:34:59ID:???0570567
2009/04/20(月) 13:05:30ID:???とりあえずしばらく使えるものがあればいいのでExpress Editionでもいいかと思いました。
制限の具合はこれから確認してみます。
0571NAME IS NULL
2009/04/20(月) 20:06:00ID:???Oracleのサイトに行けば、機能制限が無いインストーラーをダウンできるよ。
0572NAME IS NULL
2009/04/20(月) 21:31:24ID:E/kjbKAy金額は1株あたり9.50ドルで買収総額は56億ドルになる見込み。
- Oracle Buys Sun
http://www.oracle.com/us/corporate/press/018363
0573NAME IS NULL
2009/04/20(月) 22:23:15ID:???OracleDatabaseServerの導入・構築・保守(バックアップ・リカバリ)など一通りできるようになりたいのですが、
オススメの本とかありますか?
0574NAME IS NULL
2009/04/20(月) 22:40:30ID:???0575NAME IS NULL
2009/04/20(月) 22:51:37ID:???0576NAME IS NULL
2009/04/20(月) 23:31:10ID:5HLI7OQp0577NAME IS NULL
2009/04/21(火) 02:02:50ID:???全部とは言わないが、>>2ぐらいは読むと大きなヒントがあるかもな。
0578NAME IS NULL
2009/04/21(火) 09:20:40ID:???30日以上使うつもりの奴に「30日経っても使えるよ」てのはつまり
「バックレてそのまま使えよ」と勧めてるわけ?
0579NAME IS NULL
2009/04/21(火) 17:49:57ID:???一応言っとくと、ライセンスなしで使い続けてると・・
0580550
2009/04/21(火) 18:45:13ID:9X+HJO0M最終的には、
Xだったと言えば、Xだったのですが、
PCにハード面の問題があったようで、Xにしたときに画面が真っ暗になってしまい、
混乱してしまった感じです。
0581NAME IS NULL
2009/04/21(火) 19:56:08ID:???http://www.oracle.com/technology/software/popup-license/standard-license.htm
日数の制限はないみたいだけど。
0582NAME IS NULL
2009/04/21(火) 22:37:53ID:???大手ベンダの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 NULL
2009/04/21(火) 22:42:42ID:???0584NAME IS NULL
2009/04/21(火) 22:57:39ID:???どうしようもない馬鹿だな。釣りにしては下手だし。
0585NAME IS NULL
2009/04/21(火) 23:09:47ID:???オラクルやってく上で、英語は大事だが、その他2つは・・
コレクションとかもう意味不ww
0586NAME IS NULL
2009/04/21(火) 23:35:02ID:???0587NAME IS NULL
2009/04/22(水) 00:18:54ID:???0588NAME IS NULL
2009/04/22(水) 00:43:01ID:???0589NAME IS NULL
2009/04/22(水) 00:44:22ID:???0590NAME IS NULL
2009/04/22(水) 11:20:58ID:???二度と手に入らないバージョンとかあるし。
0591NAME IS NULL
2009/04/22(水) 21:09:58ID:8oVKJNzMEMCAでDatabase Controlをセットアップしているのですが、
SYSのパスワードが分かりません
Oracle11gのインストール時にデータベースは作成しませんでした。
0592NAME IS NULL
2009/04/22(水) 21:12:23ID:???( ゚д゚)
(゚д゚)
0593NAME IS NULL
2009/04/22(水) 21:53:55ID:???データベースは作成しませんでした → SYSのパスワードが分かりません
0594NAME IS NULL
2009/04/22(水) 22:12:17ID:8oVKJNzMソフトウェアのインストールのみ行ったのですが、そこが問題だったのでしょうか?
0595NAME IS NULL
2009/04/22(水) 22:27:50ID:???データベースがないのにemcaを行う意味が分かりません。
0596NAME IS NULL
2009/04/22(水) 22:30:35ID:???RMANを使ってバックアップ→リストアを行おうとして失敗しました。
コントロールファイルはリストアでき、表領域はリストア出来ませんでした。
んで、制御ファイルを再構築しDBをオープンし復旧できたと思っておりました。
下手に壊してしまう前にエクスポートでデータを取っておこうと思い
エクスポートを実行した所 「ORA-25153:一時表領域が空です。」と出ます。
復旧できてませんでした。
select * from v$TEMPFILE で確認したところ何も出てきません。
今まで一時表領域に割り当てられていたTEMP01.DBFは存在するのですが
[すでに存在するTEMP01.DBFを一時表領域に割り当てる] ような事は出来ますでしょうか?
ググると一時表領域の再作成や追加ばっかり出てきて、すでにあるファイルに割り当てる
様なのは見つけられませんでした。
こういう場合はTEMP01.DBFを削除して再作成すべきなのでしょうか?
オラクルは何度も使ったことはあるのですが、構築や保守の作業は初めてで
四苦八苦しております・・・。
よろしくお願いします。
0597NAME IS NULL
2009/04/22(水) 22:31:09ID:???ゆとりの多い世の中やね。
0598597
2009/04/22(水) 22:35:20ID:???とりあえず一時表領域は再作成しとけ。
元の名前に戻したかったら、別名で作成→元のを削除→元の名前で作成→別名のを削除、でOK
0599NAME IS NULL
2009/04/22(水) 22:39:35ID:???create tablespace ... reuse でいいんじゃないのかなー
0600NAME IS NULL
2009/04/22(水) 23:06:10ID:???598さんのやり方で試してみます。
DBが起動してる状態でTEMP01.DBFが削除できれば
リネーム考えずに一発で作れそうかなぁとか考えておりますw
ありがとうございました!
0601582
2009/04/23(木) 07:21:41ID:???酔っ払っていろいろ書いた。後悔はしていない。
0602NAME IS NULL
2009/04/23(木) 08:13:19ID:???0603NAME IS NULL
2009/04/23(木) 10:00:23ID:???あんたは間違ってない。大丈夫だ。
0604NAME IS NULL
2009/04/23(木) 21:11:49ID:6YaSPAG40605NAME IS NULL
2009/04/24(金) 18:49:27ID:7Do46R/aあるユーザがテーブルに更新を掛けていてそのテーブルを参照されたくない場合、
トランザクションが完了するまでselect文をロックするといった設定は可能なのでしょうか。
もし可能であればその設定の方法と解除の仕方を教えていただけませんでしょうか。
0606NAME IS NULL
2009/04/24(金) 20:35:44ID:???Oracleのバージョン、ディレクトリ構造、SID等が全て一緒だけど
OSが微妙に違う(Windows2003EE(MSCE)→2003SE)場合の
リカバリ時、何か気をつけることがありますか?
DBIDくらいかなと思っているのですが。
元DBのコールドバックアップをコピーしてきて
先DB上でのリカバリです。
0607NAME IS NULL
2009/04/24(金) 20:48:23ID:???0608NAME IS NULL
2009/04/24(金) 21:56:49ID:???2人目に見せたくないのは、
更新していないレコードを含む全レコードなの?
更新中のレコードだけなの?
後者なら、1人目も2人目も
SELECT ナントカ FOR UPDATE NOWAIT
で大丈夫だと思うんだけど。
あと、前者なら、1人目が
UPDATE テーブル名 SET キー=キー
を最初にかましておいてから、
SELECT ナントカ FOR UPDATE NOWAIT
で本筋の処理に入るのかな。
酔っ払っているし、
ORACLE起動したくねーから、よくわかんね。
0609NAME IS NULL
2009/04/24(金) 22:40:58ID:???窓だったら大丈夫じゃね?
注意する点としたら、oradim使ってインスタンス(サービス)作る所ぐらいか?
DBIDも同じで上がるよ。
0610NAME IS NULL
2009/04/24(金) 23:14:16ID:???>>608の言うことを試してみればいいよ。
ForUpdateならDML扱いだから、取得しようとする行が先客によってロックかけられていたら、
自分のSELECTは先客がロック解除するまで結果が返ってこない。
0611NAME IS NULL
2009/04/25(土) 00:07:40ID:f+YC/agg返ってこないというか即エラーだな
0612NAME IS NULL
2009/04/25(土) 00:19:58ID:???エラーだったか、砂時計で待ちになったか忘れたけど、こんなことはマルチユーザのシステムでは考慮するのは常識だし
うまくいってる既存のシステム真似ればよいだけの話。
0613NAME IS NULL
2009/04/25(土) 00:38:48ID:???現状、単純な処理のクエリーが戻ってこないという事が頻繁に発生しておりまして
SQLトレースからデットロックが発生しているUPDATE文までは発見できたのですが・・
クエリーが戻ってこない現象がselect文で発生しているため、ロックとクエリーが
戻ってこない現象は関連していないと考えていました。
完全に手詰まり状態でしたが、ご回答して頂いた皆様ありがとうございました。
0614NAME IS NULL
2009/04/25(土) 00:45:21ID:???そりゃ、完全に設計ミスだよ。
自分が設計したのなら、大いに反省すべきだし、
他人が設計したのならそいつに責任全部押し付けてもOKなくらい基本的かつ重要な事。
普通の中規模以上のシステムの設計書ならロックについてなんらか書かれているはず。
0615NAME IS NULL
2009/04/25(土) 00:46:45ID:f+YC/aggデッドロックならどっちかのトランザクションにエラーが返る。
0616NAME IS NULL
2009/04/25(土) 01:02:21ID:uRjQFxsBデッドロックとは何かを勉強してね。
>クエリーが戻ってこない現象がselect文で発生しているため
単に処理が重いんじゃないのか?
StatsPackとかSQL詳細レポートとか分析してみたか?
0617NAME IS NULL
2009/04/25(土) 01:16:53ID:???ORA-00060:Deadlock detected.
すべてのデットロックは1つのUPDATE文が原因です。
ご指摘の通りまったくもって勉強不足でした。出直してきます。
0618NAME IS NULL
2009/04/25(土) 01:49:03ID:v/emdwre巨人の育成って坂本みたいな小物や数年でいなくなりそうな中継ぎのこと?
中日は川上岩瀬福留と超一流を育てた実績があるのよ。
残念だけど巨人にこいつら以上の選手を育てる可能性は皆無なのよ。
0619NAME IS NULL
2009/04/25(土) 01:51:10ID:???ちなみに今某富士〇が設計しているアプリがあるんだが、そいつが
悲観ロック使っていやがる。
こんなんでパフォーマンス出せという方が無理だろ。
0620NAME IS NULL
2009/04/25(土) 02:27:11ID:???それだけの文章からはパフォーマンスが出せない理由は読み取れないだろ
ロックが致命的なボトルネックとなっているなら指摘して直させればいいし。
設計が絶対ならロック以外のところは可能な限りのパフォーマンスを出しているエビデンスを提出すればいい。
0621NAME IS NULL
2009/04/25(土) 04:28:13ID:???だが奴らは取りあえず納品さえすましちまえばいいってスタンスだから、
全く聞く耳もたねぇけどな。
とりあえず統合テストで問題点浮き彫りにして、直させるつもり。
0622NAME IS NULL
2009/04/25(土) 07:40:43ID:???アレ?質問の内容が変わったよね?
焦点がぼんやりしてるような気がする。
どれか1つについて優先して解決したい旨を示して、質問してね。
個人的には一歩一歩前進すべきだと思う。
いきなりdを質問されても、ズレた回答しちゃうからさ。
a:現在発生したデッドロックを解除したいが方法が分からないので知りたい
b:デッドロックを解除しても、SELECT文がまだ遅いので、SELECT文を見直したい
c:今回デッドロックが発生した原因を確定したい
d:将来的にデッドロックが発生しないように修正したい
0623NAME IS NULL
2009/04/25(土) 08:05:57ID:???ORA-00060が発生した日時には、
トレースファイルも出ているので、ちょっと目を通せば、
cの大体の目星についてピンと来る事が多いです。
0624NAME IS NULL
2009/04/25(土) 16:54:12ID:???試してきますた。
DBIDのセットが必要でした。後は想定通りの手順で
全く問題なかったお。
0625NAME IS NULL
2009/04/26(日) 05:12:00ID:???あと分析中ってselectとかinsertとかやっちゃっても大丈夫?
0626NAME IS NULL
2009/04/26(日) 06:27:11ID:???xxx_tablesのlast_anaryzedを確認
分析中のsql実行も問題ないけど大量insertしたりしたら
折角の分析結果が 以下略
0628NAME IS NULL
2009/04/26(日) 23:03:15ID:???何かエロいな。
0629NAME IS NULL
2009/04/27(月) 15:56:03ID:PFrga0Rnこのほかにカラムが100ぐらいありデータ数は30万ほど というテーブルunkoがあります。
このとき、次のクエリがだいたい10秒くらいかかります:
SELECT MAX(hoge),COUNT(hoge), MAX(piyo),MIN(piyo) FROM unko;
これを一瞬で終わらせたいんだけど、どういうチューニングをしたらいいの?
単純に、hoge と piyo それぞれにB-TREEインデックスをつけてみたけど
2割程度しか改善されなかった
表を分析させたらむしろ遅くなったという。
0630NAME IS NULL
2009/04/27(月) 23:56:11ID:UtcGIzOXcount は単純にレコード件数を知りたいだけか?
であれば、count(*) の方が良い。
hoge に not null 制約を付けてないで、count(hoge) をやると、テーブルフルスキャンが発生する可能性大。
0631NAME IS NULL
2009/04/27(月) 23:57:36ID:UtcGIzOX0632NAME IS NULL
2009/04/28(火) 01:48:05ID:???ハード更改
0633NAME IS NULL
2009/04/28(火) 05:41:22ID:???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 NULL
2009/04/28(火) 14:23:57ID:VWUlZDrL0635629
2009/04/28(火) 14:52:31ID:???SELECT MAX(hoge) FROM unko;
SELECT COUNT(*), MAX(piyo),MIN(piyo) FROM unko;
の2行に分けたら一瞬でおわるようになりました。
なんか、Oracleってあんまり賢くないんだね。これから気をつけます。
0636NAME IS NULL
2009/04/28(火) 15:16:22ID:???最初のクエリを一瞬で処理できる製品は見たことないです
0637NAME IS NULL
2009/04/28(火) 15:19:02ID:???こそっと書き換えてるじゃねぇかw
これが原因だろw
0638629
2009/04/28(火) 15:59:39ID:???いやまあそうなんだけどさ、いろいろ組み合わせててさ
【スロゥリィ】
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) の組み合わせが遅いのは意外だった。
0639629
2009/04/28(火) 16:02:08ID:???MySQLだと一瞬なのですわ。
まあ内部で常に個数、最大、最小、平均などを持ってるらしいから
こういうのには強いのかも
0640NAME IS NULL
2009/04/28(火) 19:45:17ID:???おぬし、あんまり賢くないな。
そこでマテビューですよ。
0641NAME IS NULL
2009/04/28(火) 20:38:37ID:???更新系のレスポンスが最悪なんじゃね?
無料のDBMSをまともに使う気がないから知らんが。
0642NAME IS NULL
2009/04/28(火) 22:10:13ID:???COUNT(hoge)はhogeが主キーでない限りだめだった気がする。
MIN、MAXはほかの製品と同じ。
>>639 はたぶんクエリキャッシュにヒットしたんだと思うよ
二回目以降は一瞬。
0643NAME IS NULL
2009/04/28(火) 22:28:37ID:???プライマリキーインデックス:PK_テーブル名
その他のインデックス:IDX1_テーブル名、IDX2_テーブル名、IDX3_テーブル名
テーブル名はできるだけ20バイト以内にして末尾にTBLを付ける。
PRODUCTTBLとか、そんな感じ。
テーブル名を「T_ナントカ」、インデックスを「I_ナントカ」とする流儀もあるようだけど、
俺には馴染めなかった。
0644NAME IS NULL
2009/04/28(火) 22:29:38ID:???0645NAME IS NULL
2009/04/28(火) 22:42:11ID:???慣れるまで抵抗あるんだよな。
常に俺ならこうする・・みたいな葛藤と闘いつつも、
でも、知らぬ間に馴染んでいってる。
ところが汎用機の文化をそのまま取り入れたような標準化には
いつまで経っても馴染めないね。。
8文字maxでイミフな記号、連番の羅列とか。。大企業ほど多い
0646NAME IS NULL
2009/04/28(火) 22:52:52ID:???運用中の実データで扱ったテーブルの中で
過去最大のレコード数ってどれぐらい?
俺、370万行。
0647NAME IS NULL
2009/04/28(火) 22:53:38ID:???カラムインデックスなら、カラム名もつけるのか?
0648NAME IS NULL
2009/04/28(火) 22:54:44ID:???マスタ:M_ ますた
ビュー:V_ びゅー
ストアド:P_ PLSQL
主キー:PK_ ぷらいまりきー
索引:IX_ いんでっくす
こんな感じのが大半だな。テーブル名が連番なのもあるが
それはそれで慣れたら開発の入力がめちゃ速くてラクだ。
論外なのは日本語使ったテーブル名。効率悪いわ気持ち悪いわ・・・
0649NAME IS NULL
2009/04/28(火) 23:04:02ID:???20億件くらい。これくらいは普通だと思う。
0650NAME IS NULL
2009/04/28(火) 23:12:07ID:???>カラムインデックスなら、カラム名もつけるのか?
カラムインデックスのとき、カラム名は付けない。
検討したけど冗長と判断した。
テーブルの定義は別途EXCELで資料化してて、
そっちのほうに、インデックスのカラムを書いてる。
そのEXCELには
CREATE TABLE文とCREATE INDEX文を
自動生成させる機能がある。
まあ10年ぐらい前から良くある話。
0651NAME IS NULL
2009/04/28(火) 23:20:38ID:???えええ。普通じゃないでしょ。
1テーブルで20億行なんだよね?
履歴というコンセプトだと仮定しても
1日に10万行発生で2千日かかるよ。
リレーショナル的に、きちんとクエリに使うるの?
0652NAME IS NULL
2009/04/29(水) 01:12:20ID:???20億でも異常だとは思えない。
0653649
2009/04/29(水) 01:44:09ID:???パーティション表は必須になるし、統計情報とか実行計画とかにもうるさくなるよ。
0654NAME IS NULL
2009/04/29(水) 04:35:42ID:faefKd13レコード長がどのくらいか解らない状態で、テーブルの件数うんぬんの話をするなっての。
Oracle屋だったら、テーブルサイズで物申せ。
0655NAME IS NULL
2009/04/29(水) 04:53:44ID:faefKd13初期化パラメータなりを調整してインデックスを使用した場合のコストを低くしたり、
ヒント句をつけて実行計画をコントロールするようにしてる。
0656NAME IS NULL
2009/04/29(水) 10:51:50ID:???>>653
へええ。勉強になった。ありがとう。
>>654
テーブルサイズで議論すると
BLOB次第でどうとでもなってしまうと思った。
BLOBについては俺は、あまり興味が無い。
一応聞くけど、あなたの経験した最大の
テーブルサイズは幾らですか?
俺、1500MB。BLOB列なし。370万行。
0657649
2009/04/29(水) 13:16:54ID:???俺の関わったシステムは2TBくらいだったよ。36GBx80本。
レコード長としては大きくない。
0658NAME IS NULL
2009/04/29(水) 21:06:36ID:???0659NAME IS NULL
2009/05/01(金) 16:59:56ID:???ずっとInternal Server Errorなんだけど。
0660NAME IS NULL
2009/05/02(土) 21:41:14ID:???Oracle Database 10g Release 2 (10.2.0) JP Media Pack
for Microsoft Windows x64
を5/2 21:00〜から落としてるけど、特に問題は無いです。
Internal Server Errorは発生してないです。
0661659
2009/05/03(日) 00:02:42ID:???サンクス!
0662NAME IS NULL
2009/05/03(日) 10:43:01ID:blqLN5nNORA-12162: TNS:net service name is incorrectly specified
が出てログインできません。ユーザ名は11gをインストールする際にインストーラを起動した
ときのユーザ名です。パスワードも同じ。
Net Configuration Assistantというのを使って設定をしないとだめなのでしょうか?
どうかよろしくお願いします。
0663NAME IS NULL
2009/05/03(日) 10:45:05ID:???でローカル接続できない?
これだとリスナ関係ない
0664NAME IS NULL
2009/05/03(日) 10:54:22ID:???一通り落として 50GB 程度あるし.
US 側の E-Delivery でしかまだ公開してなくて, 大体 US の昼前から夕方にかけて
の時間帯 ( 東部か西部かとか面倒なこと聞くなよ w ) に激烈に重いのは多分これ.
日本時間の 04/30〜05/02 あたりまでは結構 500 出てた.
04/30 から映画観つつ落とし続けてるけどまだ揃わん ...
0665NAME IS NULL
2009/05/03(日) 11:07:32ID:blqLN5nNありがとうございます。
それでやったのですが、同じようにORA-12162がでてログインできませんでした。
netcaで設定しようとしたのですが、その設定もインストール時に終わっていたようです。
一つ気になるのは、インストールを普段のユーザでやったことです。Oracleという名前の
ユーザも作成してないし。これが問題でしょうか?
0666NAME IS NULL
2009/05/03(日) 12:08:26ID:???umaskの設定してないとか?
Oracleユーザの$HOMEにある.bash_profileに下記内容を追加
umask 022
0667NAME IS NULL
2009/05/03(日) 13:38:38ID:???>ユーザも作成してないし
ユーザ名は何でも良いけど、そのユーザに対して、
インストールグループ(ex.oinstall)をプライマリとして、
DBAグループ(ex.dba)をセカンダリとして、
属させないとダメだよ?
0668NAME IS NULL
2009/05/03(日) 16:53:52ID:???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 NULL
2009/05/03(日) 20:43:31ID:???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 NULL
2009/05/03(日) 21:03:19ID:blqLN5nN色々いじってるうちになんだか怪しくなってきたので、OSのインストールから再度やり直してみます。
668と669に書いてもらったのは参考にさせてもらいます。ありがとうス。
0671NAME IS NULL
2009/05/03(日) 21:20:48ID:???0672NAME IS NULL
2009/05/04(月) 17:49:28ID:uyHZ9lk2Java上の文字列のコードポイントがそのままDBに入る、
すなわちコードポイントの変換は一切行われず、よって文字化けもしないと
考えていいのでしょうか?
また、OracleはNFD正規化文字に対応しているのでしょうか?
よろしくお願いします。
0673NAME IS NULL
2009/05/04(月) 18:43:29ID:???unicodeとutf8の変換は発生するが基本的にAL32UTF8が推奨。
0674NAME IS NULL
2009/05/04(月) 18:49:52ID:???0675NAME IS NULL
2009/05/04(月) 21:24:27ID:???あれば教えてください。
0676NAME IS NULL
2009/05/04(月) 23:09:26ID:uyHZ9lk2http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05743-02/toc.htm
0677NAME IS NULL
2009/05/05(火) 23:58:26ID:hdZ976TQOSのインストールからやり直しました。VmwareをインストールしてLinuxをインストールして、
Oracleをインストールしました。でもやっぱりORACLE_SIDが設定されてません。
これはどこで設定し、どういう値になるべきなのでしょうか?
Oracleのインストールは668を参考にしてやりました。
よろしくお願いします。
0678NAME IS NULL
2009/05/06(水) 00:27:20ID:???ORACLE_SIDは普通に環境変数で設定します。
バイナリインストール時にデータベース作成を選んでいたのなら、
そこで指定した値を自分で環境変数に書き込みます。
0679NAME IS NULL
2009/05/06(水) 00:28:57ID:/9mrt7htバイナリインストール時にデータベース作成をしてませんでした。
データベースを作成しなくてはだめですか?
0680NAME IS NULL
2009/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 NULL
2009/05/06(水) 01:09:49ID:???そんなところで躓くようなら、OSのこととか、もっと基礎を勉強してからVMにオラクルとかをやるべき。
どうしてもオラクルに触りたいならまずWindowsからにするとか。
0682NAME IS NULL
2009/05/06(水) 02:06:28ID:???ORA_NLS10 と NLS_LANG は必須ではないな。
0683NAME IS NULL
2009/05/06(水) 13:46:28ID:???クライアントはWindowsXP
DBサーバー上にある外部実行ファイルを、クライアント側から起動かけたいんですけど
「dbms_schedulerパッケージ」を使用すれば可能でしょうか?
0684NAME IS NULL
2009/05/06(水) 14:48:00ID:???さもなくば、RPCとか。
そういう話ではないん?
0685NAME IS NULL
2009/05/06(水) 15:02:00ID:???684も似たような方法を言ってるけど、telnetでもsshでも、お好きな方法でどうぞ。
的外れとか言うなら、前提条件をしっかり書くべし!
0686NAME IS NULL
2009/05/06(水) 15:21:19ID:???ttp://www.oracle.co.jp/forum/message.jspa?messageID=2020251
0687NAME IS NULL
2009/05/06(水) 15:42:24ID:???>>686の議論でも、「cronでやれや」って出てこないのが不思議w
他のサーバとの連携とか込み入ってくれば、JP1などを使ったりするだろうし。
0688NAME IS NULL
2009/05/06(水) 16:46:21ID:???経験無い?何度かあちこち弄ってて、
何がおかしいのかわからなくなってOSからやり直したことあるからな。。
最近はOSからやり直すことは無いが、スナップショットはちょくちょく使う。
0689NAME IS NULL
2009/05/06(水) 16:56:44ID:???自宅だと、かまわないけど原因を究明するのがスキルアップにつながるからできるだけ回避。
EBSやらなにやら複合で入れている場合はパッチでバグになってループする可能性あるからなんともいえないが、
OracleDB単体なら再インストールするひつようはないと思う。
0690NAME IS NULL
2009/05/06(水) 17:07:17ID:???でも学習はいいだろうけど運用はかなり費用がかかるんでしょ?
最近、こういう費用も厳しいんですよね。
なにせ会社で Vista は一台もなしだし。アップするとイモずる式に M$ 関係にライセンス料更新とか発生してしまって。勘弁して欲しい。
なにせ未だ Access 2000 現役だからなぁ。
0691NAME IS NULL
2009/05/06(水) 20:50:32ID:???やる前にバックアップを採っておくのは当たり前だから、入れ直すとか全く考えない、ありえない。
特に大型機のUnixなんかだと、OSのインストール(HBAとかストレージなんかのミドルも含めて)は、別のSEがやることが多いし。
0692NAME IS NULL
2009/05/07(木) 19:41:05ID:rgwTFvO+OracleにはDB2のコントロールセンターのようなデータを手軽に挿入できるツールはあるのでしょうか?
データの追加はSQL Plusで地道に挿入するしかないのでしょうか?
教えてください!
0693NAME IS NULL
2009/05/07(木) 21:14:27ID:???Access
0694NAME IS NULL
2009/05/07(木) 21:19:41ID:???0695NAME IS NULL
2009/05/07(木) 21:29:20ID:rgwTFvO+どのツールを使えば出来るのですか?
0696NAME IS NULL
2009/05/07(木) 21:45:31ID:???CSE
SQLEDIT
0697NAME IS NULL
2009/05/07(木) 22:59:05ID:???0698NAME IS NULL
2009/05/09(土) 03:01:35ID:JoxlLn6yORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
が出ます。
プロセスを見るとOracle関連のプロセスが起動してないのですが、Oracleを起動させるには
なにかのコマンドが必要なのでしょうか?
0699NAME IS NULL
2009/05/09(土) 03:44:33ID:???0700NAME IS NULL
2009/05/09(土) 09:40:51ID:JoxlLn6y0701NAME IS NULL
2009/05/09(土) 12:20:35ID:???基礎知識を学んでから出なおしてきてください。
0702NAME IS NULL
2009/05/09(土) 15:33:21ID:2Qq3YQMD0703NAME IS NULL
2009/05/09(土) 15:35:49ID:???オラクルは犬で
マイクロソフトはイルカ
0704NAME IS NULL
2009/05/09(土) 18:26:27ID:???Windows以外のOSをサポートしているか否か
0705NAME IS NULL
2009/05/09(土) 20:19:07ID:???だめじゃないです。
OSの起動と同時にインスタンスやリスナーを起動したい。
OSの終了と同時にインスタンスを終了したい。
なら用意する必要があります。
実際のところOS自体を落すことってほとんどないでしょ。
0706NAME IS NULL
2009/05/09(土) 21:21:46ID:???無能は放置せよ。
0707NAME IS NULL
2009/05/09(土) 21:26:32ID:???お前今から放置されるぞ?大丈夫なのか?
0708NAME IS NULL
2009/05/09(土) 21:57:37ID:???0709NAME IS NULL
2009/05/10(日) 00:43:07ID:???0710NAME IS NULL
2009/05/10(日) 01:05:41ID:???0711NAME IS NULL
2009/05/10(日) 04:20:02ID:???調べるとしたらこの辺かなぁ
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 NULL
2009/05/11(月) 00:33:33ID:???とか質問されるF1ドライバーを見ている感じだな。
0713NAME IS NULL
2009/05/11(月) 14:51:48ID:???利用アプリケーションにイベント通知は可能なのでしょうか?
アプリケーション側でフラグに該当するテーブルを監視するというやり方でなく、
イベントを通知するというやり方がわかりません。
0714NAME IS NULL
2009/05/11(月) 23:30:06ID:???0715NAME IS NULL
2009/05/12(火) 17:49:36ID:???select * from table1
where field1='VALUE'
とするとインデックスを参照しますが
select * from table1
where field1=SYS_CONTEXT('NAMESPACE','PARAMTER')
としたとき、FULLスキャンになります。
この条件をビューの定義に含めたいのですが、
うまくインデックスを使うように書くことはできませんか?
よろしくお願いします。
0716NAME IS NULL
2009/05/12(火) 19:03:56ID:???カラムの中身とオプティマイザ次第だろ。
どうしても索引使いたければヒントで固定。
0717NAME IS NULL
2009/05/12(火) 22:22:08ID:0DEmvHy+以下の2つのテーブルに対して、なるべく付加の高いSQL文を発行したいです。
どのようSQL文を発行したら良いでしょうか?どなたか教えてください
表A
列a、列b、列c(表Bのa列を参照)、列d
B表
列a、列b
0718NAME IS NULL
2009/05/12(火) 22:41:39ID:???select * from A,B
0719NAME IS NULL
2009/05/12(火) 22:55:31ID:0DEmvHy+0720NAME IS NULL
2009/05/13(水) 21:52:27ID:???Database Configration Managerからデータベース作成時に設定した
初期パラメータの メモリー・サイズ(SGAおよびPGA) の値を確認する方法はありますか?
宜しくお願いします。
0721NAME IS NULL
2009/05/13(水) 21:56:44ID:???お前みたいなヤツはアラート見ろ。
起動時のログに書いてあるから。
あとはちゃんと自分で調べてくれ。
0722NAME IS NULL
2009/05/13(水) 22:38:25ID:???まじ助かりました、ありがとう!
0723NAME IS NULL
2009/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 NULL
2009/05/14(木) 12:45:29ID:???以上
0726NAME IS NULL
2009/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 NULL
2009/05/15(金) 07:39:33ID:???||で結果を結合したり・・
てかもうこの、くだらない一問一答嫌なんだが。
みんなしっかりマニュアル&ネットやらでしっかり調べてから聞いてくれ。
0728NAME IS NULL
2009/05/15(金) 08:51:52ID:???まともな人はOTNで聞く。
0730NAME IS NULL
2009/05/15(金) 10:46:42ID:???0731NAME IS NULL
2009/05/15(金) 20:56:17ID:shRi2iqv0732NAME IS NULL
2009/05/15(金) 21:17:36ID:???使い物になるのか知りたいので。
0733NAME IS NULL
2009/05/15(金) 21:45:15ID:???べつに、ふつうに使えるぞ。
0734NAME IS NULL
2009/05/15(金) 22:36:14ID:???違う?
と言ってみるテスト
0735NAME IS NULL
2009/05/16(土) 00:25:22ID:???入れた順に〜とか、キー値と大体合致してる〜とか。
0736NAME IS NULL
2009/05/16(土) 01:23:56ID:U6sR389jMG13Dを使用していて、且つT5120を使っているっていうことは
F社関係者?
T5120 はOracleRDBMSサーバ製品を稼動させるのには向いていない。
WebサーバやWebアプリケーションサーバの様に小さいスレッドが
多数動作する環境向きといわれている。
0737NAME IS NULL
2009/05/16(土) 01:26:50ID:???0738NAME IS NULL
2009/05/16(土) 10:19:47ID:55/kVsz3普段はLenovo T60とサーバはML115を使ってますけどねw
デバッグはあり合わせのものなんで・・・。
UltraSPARCってDB向けだってインフラ部隊とかDB設計部隊聞いてるけど?
DBでそんなにでっかいスレッド動かないし、要求が多いから複数スレッド動くし・・・。
事実T5440(SEVPHSF1Z)だと爆速なんですけどね。
HP DL580 G5(487363-291)より早いですし・・・。
ってかDBだけど使用目的はWebアプリケーションサーバなんですけどね(^^;)
Solarisよくわからんから今回は自分でサーバみてないんだよね。
0739NAME IS NULL
2009/05/16(土) 11:02:27ID:???真性の馬鹿だな。
無能DB設計部隊共々勉強しなおしてこい。
0740NAME IS NULL
2009/05/16(土) 11:29:12ID:???どうせ設定もわからず適当にインストールして遅いだの速いだの言ってるんだろう。
0741NAME IS NULL
2009/05/16(土) 12:05:12ID:55/kVsz3まぁクライアントやってるから俺はDB勉強しなくていいんだけどねw
もともと、組み込みのC技術者だしw
DB部隊は俺の5倍以上給料もらってるから勉強してもらいたいものだが・・・。
ってか、DBには問題ないとおもうけどね。
CPU使用率はみてるけどそんなにDBで処理くってるわけやないし。
ってかほとんどくってないw
>>740
うちのインフラ部隊はF社並に無能っぽいw
F社に関わりないからよくわからんけど・・・。
0742NAME IS NULL
2009/05/16(土) 12:35:48ID:???DB設計がちゃんとできてないとIOにばかりコストがかかって
CPUなんかろくろく使われないことを知ってるか?
愚痴こぼす前に、もっと勉強しろ
0744NAME IS NULL
2009/05/16(土) 12:39:50ID:???といっても、AP-DB間のコネクションを増やしてやる(当然、AP側でも考慮してやる必要があるが)とかすれば、トータルの性能を上げることは出来るだろう。
0745NAME IS NULL
2009/05/16(土) 15:29:05ID:???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の性能を比較してみては。
0746745
2009/05/16(土) 15:32:11ID:???0747NAME IS NULL
2009/05/21(木) 21:57:24ID:???あれ、当たった話聞いたことないが、当たったことある人いる?
0748NAME IS NULL
2009/05/24(日) 22:14:59ID:???お客さんとこの環境で今試せないので
分かる方教えて下さい。
Windows 2000 Server
Oracle 8.1.7
0749NAME IS NULL
2009/05/24(日) 22:35:22ID:???VIEWが参照しているTABLEにはつけられる
MATERIALIZED VIEWならつけられる
0750NAME IS NULL
2009/05/25(月) 22:17:13ID:guErIChIテーブル中に、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 NULL
2009/05/25(月) 22:30:16ID:???目に見えない文字が入ってたりして
0752NAME IS NULL
2009/05/25(月) 22:46:45ID:???0753NAME IS NULL
2009/05/25(月) 22:57:50ID:???サポートに聞けよ
アホ
0754NAME IS NULL
2009/05/25(月) 22:57:52ID:???テーブルにつけてたら有効なんですね
サンクス
0755NAME IS NULL
2009/05/26(火) 08:09:06ID:???SQL*Loader-350エラーは必ずしもフィールド長に起因するものではない。
どちらかというとORA-600に近いものと理解した方がいい。
ロードするデータやコントロールファイルにエラーがあると、SQL*Loader-350
エラーとしてハンドリングされてしまう事がある。
よって、データ及びコントロールファイルをもう一度良くチェックすべし。
0756NAME IS NULL
2009/05/26(火) 18:22:33ID:???文字を削っていったら成功したっていう事象を無視した発言じゃね?
0757NAME IS NULL
2009/05/26(火) 21:36:35ID:???たとえばデータの最後にクオーテーションやダブルコーテンションがなければ
ならないのに、それが抜けていたらSQL*Loader-350が返ってきたりする。
文字列を削っていけば、その抜けていたデータがロードされなくて通ったりとかも
考えられるだろ?
0758750
2009/05/26(火) 22:32:00ID:???色々とご回答ありがとうございます。
私は別件が忙しくなって、本日は本件を全く見れていなかったのですが、
皆様のお話から判断すると、
・全角が3バイト以上となることは、今回のケースでは考えられない
・他の問題(>>755 のデータおよびコントロールファイル)を疑うべし
ということのようですね。
最初はある特定のケースで文字のバイト数が増えるのか? と混乱していたのですが、
皆様の回答からそれは無い、ということが自信が持てたので、あとは違った角度から問題解決の糸口を探っていこうと思います。
どうもありがとうございました。
0759NAME IS NULL
2009/05/28(木) 21:19:16ID:???SYSTEMスキーマにてスキーマAのテーブルBをマスタにしているスナップショットが調べたいのですが
dba_registered_snapshotsのownerはスナップショットの持ち主を指すんでうまく検索できません・・・
ようはマスター側のテーブルのownerとtable_nameでレプリ先のスナップショットを検索できるSQLが書きたいです
教えてくれれば幸いです
0760NAME IS NULL
2009/05/28(木) 23:25:59ID:5nEvd4/bスーパー管理者、リポジトリ管理者というのは、具体的に何が出来るユーザー(管理者)なのでしょうか?
どなたか教えてください?
0761NAME IS NULL
2009/05/28(木) 23:39:29ID:???元Table → View
NUMBER(10,3) → VARCHAR(15)
DATE → VARCHAR(10)
0762NAME IS NULL
2009/05/28(木) 23:39:36ID:???リポジトリなことができる管理者
0763NAME IS NULL
2009/05/29(金) 02:55:04ID:???エスパーではないが、多分OEM(10g Grid Control)の事言っているのかいな?
Super Administrator権限は文字通りOEMコンソール上において最上級の権限を持つ。
OEM用に他ユーザーを作ったり、新規のRuleを作成したり何でもできる。
Repository AdministratorはSYSMANの事を指すと思われ。
SYSMANもSuper Adminsitartor権限を持っているが、DB上においてリポジトリに関連する
DBオブジェクトは全てこのユーザーの配下に作成されている。
OEMに関連するパッチやアップグレードを行う場合、SYSMANのパスワード入力を求め
られるのはこのため。
0764NAME IS NULL
2009/05/29(金) 16:28:43ID:???このテーブルからプライマリキーが最大の行を取得するにはどう書けばいいですか?(1文で)
0765NAME IS NULL
2009/05/29(金) 17:49:13ID:???0766NAME IS NULL
2009/05/30(土) 03:14:54ID:OxBqVtlaとりあえず「OracleXEUniv.exe」ってのを落としてきてインストールしました。
次にODBCですが、どうやらOracle Universal Installerなるものが必要なのですが、
これはフリーで手に入るのでしょうか?可能なら入手方法を教えてください。
0767NAME IS NULL
2009/05/30(土) 08:57:40ID:???Oracle純正もあるけど。
0768NAME IS NULL
2009/05/31(日) 19:11:41ID:6AEhynkfどのように記述すればいいでしょうか?
1つの表領域に対して複数のデータファイルを指定したいのですが・・・
WindowsServer2003のOracle11gです。
0769NAME IS NULL
2009/05/31(日) 19:56:11ID:???0770NAME IS NULL
2009/05/31(日) 23:09:16ID:8PhEh/zySYSは、シスユーザーとかですか?
0771NAME IS NULL
2009/06/01(月) 08:14:20ID:???自分考えろや。
ホント、大ゆとり時代だな。
0772NAME IS NULL
2009/06/01(月) 20:34:39ID:tfA2VkzESYS⇒シス、SYSMAN⇒シスマン、SYSTEM⇒システム、DBSNMP⇒ディービーエスエヌエムピー
って読んでるが、他にも同じ人いる?
0773NAME IS NULL
2009/06/01(月) 20:48:37ID:???0774NAME IS NULL
2009/06/01(月) 21:27:30ID:???SYSOPER シスオパー
Ping ピング
GUEST グエスト
nobody ノウボディ
0775NAME IS NULL
2009/06/01(月) 21:58:19ID:???Nobody は ボぢゃなくて ノォーブァディ ってマジは現金か
0776NAME IS NULL
2009/06/01(月) 22:03:52ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ >>774
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0777NAME IS NULL
2009/06/01(月) 22:26:25ID:???0778NAME IS NULL
2009/06/01(月) 23:57:25ID:???教えてくださってありがとうございます。
やっと規制解除された。。
0779NAME IS NULL
2009/06/02(火) 05:28:36ID:???http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B9
0780NAME IS NULL
2009/06/02(火) 22:04:34ID:VnED08o2Database Controlの「パフォーマンス」タブの「平均アクティブ・セッション」
における(時系列に表示されている)グラフが意図するものは何なのですか?
セッションの内訳を表示しているというのは何となく分かるのですが。
縦軸の意味もよく分かりませ。(横軸は分かりますが...)
分かりにくい質問ですみません。
友達に色々質問されて、上手く説明できなく困ってます。
0781NAME IS NULL
2009/06/02(火) 23:18:38ID:HF9ihThy内部エラーが発生します。
長いSQL文が原因かどうかわかりませんが
SQL文を短くすると内部エラーがでません。
なにかアドバイスが頂きたいです。
ODBC経由では実行できてJDBC経由では実行できない
経験があるかたいらっしゃいましたら教えてください。
以上です。
0782NAME IS NULL
2009/06/03(水) 00:38:06ID:???マニュアル嫁
DatabaseControlならその場でHelpも開けるから、それ見ろ。
>>781
JDBCだと上手くいかないとか、ADO.NETだと上手くいかないとか、
そういうのは経験したことある。
バインド変数の暗黙変換周りとかがクサイ。
0783NAME IS NULL
2009/06/05(金) 07:37:05ID:???とりあえず、最新のパッチセットリリースを適用して再現するか確認。
0784NAME IS NULL
2009/06/05(金) 16:01:32ID:???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 NULL
2009/06/06(土) 06:18:03ID:???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ステップ目(目的の処理)に進まないとか・・・
0786784
2009/06/08(月) 12:05:16ID:???どちらも試してみましたが、やはり遅いままでした。
別の手法も視野にいれつつ再検討したいと思います。
ありがとうございました。
0787NAME IS NULL
2009/06/09(火) 00:28:59ID:???ナカーマ(゚∀゚)人(゚∀゚)
オイラもOracle 7育ちだよ。
とは言ってもデータベース管理�T受けさせられただけで、スナップショット
使いまくりの分散DBが最初の担当だったけどさ・・・('A`)
叩き上げで、そのあと欧州に渡り、今はアメリカ東部戦線で戦っているw
0788NAME IS NULL
2009/06/12(金) 01:19:42ID:???WINDOWS&C言語&XE(&PRO*C)のフリーセットでアプリケーションを
作って勉強したいと思っています。CとXEはそれぞれ無事動作したの
ですが、PRO*Cが見つからず連携できません。何か良い方法もしくは
参考になりそうなURLご存知の方はいらっしゃいますでしょうか?
ググッてもみたのですが参考になる情報は見つけられませんでした。
どうぞ宜しくお願い致します。。。
0789NAME IS NULL
2009/06/12(金) 07:46:54ID:???スレ住民の見解は、どうなんですかね。
私自身は、ストアドプログラムを書くのに際し、
PL/SQLで機能不足を感じた事は無いです。
0790NAME IS NULL
2009/06/12(金) 10:53:39ID:???0791NAME IS NULL
2009/06/12(金) 14:16:21ID:???頑なに、Solaris+Oracleを使い続けているような所は、特に。
0792NAME IS NULL
2009/06/12(金) 14:25:06ID:???いやいや流石に Pro*C/C++ まではタダ配りしてないってw
>>789
C (C++ でなく) で開発するなら他に選択の余地もないでしょ。
C++ や C++/CLI ならまだしも。
0793NAME IS NULL
2009/06/12(金) 14:53:06ID:???頑なって、他に選択の余地もないでしょ。
0794NAME IS NULL
2009/06/12(金) 18:53:46ID:???これ豆知識
0795NAME IS NULL
2009/06/12(金) 23:40:23ID:???Pro*Cみたいなプリプロセッサはハマったときのデバッグが大変だし。
0796NAME IS NULL
2009/06/13(土) 08:32:24ID:???あんなオナニー技術
0797NAME IS NULL
2009/06/13(土) 10:00:28ID:???PL/SQLなら色々サンプルもありそうですね。
できればPro*Cで作りたかったのですが、
>>794さんのおっしゃるとおりでした。
確かにあまり選択の余地はなさそうです。
ociも調べてみました。これもオラクルなの
ですね。XE中にもDLLとかありましたので何
とかなりそう?ありがとうございます。>>795さん
PL/SQL、ociあたりから攻めてみます。
情報提供していただいた皆様本当にありがとう
ございます。
0798NAME IS NULL
2009/06/13(土) 10:18:27ID:???VBやVBA、VBSなどでも同じ使い方が出来るし、最初にやるのはこっちの方がいいんじゃね?
0799NAME IS NULL
2009/06/13(土) 12:46:07ID:???クソ遅いからイヤダ
0800NAME IS NULL
2009/06/13(土) 18:13:38ID:???0801NAME IS NULL
2009/06/17(水) 17:32:09ID:???仕様書が無いため、非常にわかりにくいアプリケーションなのですが、
基本的にDBアクセスのアプリケーションです。
分析するためにアプリケーションが発行したSQLの履歴を確認したいのですが、
確認方法はあるのでしょうか?
なにか、ヒントになるようなサイトや言葉があれば教えて頂きたいです。
0802NAME IS NULL
2009/06/17(水) 18:34:55ID:???0803NAME IS NULL
2009/06/17(水) 18:49:06ID:???v$sqlとかv$sqlareaを定期的に採取したら?
EnterpriseManagerでも負荷の高いSQLは採取できたと思うけど。
0804NAME IS NULL
2009/06/17(水) 23:41:59ID:???この場合は負荷の高いものを知りたいのではないでしょ。
0805NAME IS NULL
2009/06/18(木) 01:24:16ID:???ファイングレイン監査。
0806NAME IS NULL
2009/06/19(金) 07:04:58ID:???Enterprise Editionだけの対応らしい。
11gのTotal Recallも、
Enterprise Editionだけの対応らしい。
面白くねえ。
0807NAME IS NULL
2009/06/19(金) 07:05:23ID:2pJAXRqp以下のURLの「別セッションのSQLトレース、EVENT 10046の
SQLトレース取得手順」を参考
ttp://www.atmarkit.co.jp/fdb/rensai/orasql05/orasql05_2.html
0808NAME IS NULL
2009/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 NULL
2009/06/19(金) 12:41:28ID:???0810NAME IS NULL
2009/06/19(金) 13:21:01ID:Rgb/cdY+一応、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 NULL
2009/06/19(金) 18:49:24ID:???リモートデスクトップ接続で作業してる?
8.1.7は、リモートデスクトップ接続
(ターミナルサービスクライアント利用など)
では、CREATE DATABASEできないよ。
Database Configuration Assistantを使ってもダメ。
不具合だけど直さない、とかいう話だったかな。
サーバのある場所まで行って、
サーバに直接ログオン(ローカルログオン)して
作業すると大丈夫。
そこまで行けない場合、ウラワザとしては、
Database Configuration Assistantなどで
スクリプトを作っておき、そのスクリプトを、
ATコマンドで、Windowsからログオフしている時間帯に
呼び出すように仕込めば作れたような気がする。
0812NAME IS NULL
2009/06/19(金) 23:11:17ID:???0813808
2009/06/20(土) 01:11:57ID:???原因が判明しました…
よりによって、使用する予定のポート番号が重複していたことが
原因でした…
1523ポート使用と言っていたのに、別システムが先に無断で使用していました。
未使用の1522ポート指定でうまく作成されました。
お騒がせして申し訳ありません。
…PGのポート指定直さなきゃ…orz
0814NAME IS NULL
2009/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 NULL
2009/06/22(月) 23:09:29ID:???0816NAME IS NULL
2009/06/23(火) 00:07:40ID:???OracleじゃなくWinの制限。
http://support.microsoft.com/kb/124184
簡単に言うと、サービスの開始アカウントを変更(要Admin権限)し、そのアカウントで
NASにアクセスできるようにしないと駄目。
0817NAME IS NULL
2009/06/23(火) 13:03:19ID:???サービスをシステムアカウントで作ってしまうようになっているのが、おかしい。
0818NAME IS NULL
2009/06/23(火) 23:18:00ID:???dbConsoleでダンプを落とす、って何?
ダンプと言うとexpか、expdpの事しか
思いつかないんだよね。
Enterprise Manager(EM)をよく知らないから
駄目なんだろうかね?
0819NAME IS NULL
2009/06/25(木) 00:02:14ID:???ASMとかリソースマネージャとか使うと、OEMがないと不便を感じる。
0820NAME IS NULL
2009/06/25(木) 02:31:26ID:???データパンプ用のディレクトリをDB上に作る時にUNCで指定していないからじゃね?
0821814
2009/06/25(木) 15:09:47ID:???ご解答頂いた皆様、有難うございます。
結果だけ言うと分かりませんでした・・
私が派遣一辺倒で、プログラム一本環境無知なもので。。。
winのタスクでPLを起動し、ファイル転送のバッチを動かす事で解決致しました。
0822NAME IS NULL
2009/06/29(月) 15:10:44ID:OhsehFKL移行のヒヤリングを教えて
何を聞けばいいのかすらわかんない
0823NAME IS NULL
2009/06/29(月) 23:24:56ID:???・DBのバージョン
・テスト環境の構築
・テスト環境におけるアプリケーションのテスト期間
・アップグレードにおけるアプリケーションへの影響
・アップグレードによるSQLのパフォーマンス問題の対応方法
・バックアップ手順
・移行に際して、DB止められる時間
・移行手順の確認 (DBUA? マニュアルアップグレード?)
・移行失敗におけるリスク
・移行失敗時におけるバックアッププラン
0824NAME IS NULL
2009/06/30(火) 22:23:35ID:???(´д`)つhttp://hp.oracle.co.jp/
アップグレードに関するドキュメントも幾つかある。
0825NAME IS NULL
2009/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 NULL
2009/07/01(水) 02:33:42ID:???バージョンが同じ場合は、物理的に移行する(データファイルその他のコピー)方が簡単。
0827825
2009/07/01(水) 07:44:55ID:???ありがとうございまず。
exp/inpでの移行方も会得しておきたいと思っていますのでexp/impでの方法をご教授頂けたらありがたいです。
よろしくお願いいたします。
0828NAME IS NULL
2009/07/01(水) 07:49:44ID:???まずは日本語から勉強し直すといいよ。
0829NAME IS NULL
2009/07/01(水) 09:26:42ID:???マジで >>827 が読めないつってんの?どう読んでも
「他の遣り方なんざ訊いてねえよ。」
の婉曲な表現だろうに。
>>825
やってみりゃすぐ解るレベルなのに…
0830NAME IS NULL
2009/07/01(水) 15:45:15ID:???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の処理を含むから、
表領域の作成が重複してしまいエラーが出るけど、
それは想定の範囲ってやつで問題なし。
0831828
2009/07/01(水) 22:13:16ID:???「移行方」って何?
お前の母国だろうと思われる韓国では通じるかもしれないが、ここは日本だからな。
ちなみに exp/imp はもう古い。expdp/impdp を使え。
0833NAME IS NULL
2009/07/02(木) 10:19:01ID:???園児かお前はw
0834NAME IS NULL
2009/07/02(木) 19:18:31ID:???expdp/impdpのバグの多さ、ヒドくない?
シロートは、自ら進んで地雷踏め
っていうスパルタ教育主義?
0835NAME IS NULL
2009/07/02(木) 23:44:54ID:???普通に使っているけどね。
やっぱ早いし。
0836NAME IS NULL
2009/07/03(金) 00:00:41ID:???園児?
やはりあちらの国の言うことはさっぱりわからんな。
0838NAME IS NULL
2009/07/03(金) 09:26:28ID:???0839NAME IS NULL
2009/07/03(金) 12:03:22ID:???もう放っといてあげようよw
0840NAME IS NULL
2009/07/03(金) 21:09:26ID:???0841NAME IS NULL
2009/07/03(金) 22:20:51ID:???だってわたしたち、
0842NAME IS NULL
2009/07/03(金) 23:47:43ID:???0843NAME IS NULL
2009/07/04(土) 09:00:26ID:???おもちゃは結構アイテム数あるぞ いまいちだったな
0844NAME IS NULL
2009/07/04(土) 09:26:17ID:???ぷっ(笑)
0845NAME IS NULL
2009/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 NULL
2009/07/05(日) 02:07:42ID:???select table_name from user_tables;
にTblFooはありますか?
select * from testadmin.TblFoo;
では結果が変わりますか?
0847NAME IS NULL
2009/07/05(日) 02:39:40ID:???""をつけると大文字小文字が区別される。つけないと全部大文字とみなされる。
書いてあるSQL・結果がそのとおりなら
(多分、testadminはTESTADMINだと思うが)、
create table "TblFoo" ... として作っている。
その場合、select * from "TblFoo"; としないといけない。
0848NAME IS NULL
2009/07/05(日) 06:46:00ID:???0849NAME IS NULL
2009/07/05(日) 10:36:40ID:???>>847さんのおっしゃるとおりでした!
ダブルクォーテーションつけたら選択できました!
どうもありがとうございます。すごいです。本当に感動しました。
0850NAME IS NULL
2009/07/05(日) 12:40:13ID:???いつのバージョンからだったのでしょう。うむむ覚えていない。
0851NAME IS NULL
2009/07/05(日) 14:37:52ID:???少なくとも7のときには""で大文字小文字を区別していた。
あと、""でくくると使用できる記号が増え、
空白や+-/*()等も使用できるようになる。
詳しくは「SQL言語リファレンス」の
「スキーマ・オブジェクトのネーミング規則」を参照。
0852NAME IS NULL
2009/07/05(日) 15:01:26ID:???0853NAME IS NULL
2009/07/07(火) 06:40:35ID:???0854NAME IS NULL
2009/07/07(火) 09:19:47ID:???Instant Clientが対応していれば良いのですが、対応表では8.1.7としか書いていないため迷っています。
0855NAME IS NULL
2009/07/07(火) 13:09:08ID:???0856NAME IS NULL
2009/07/07(火) 13:20:30ID:???別のバージョンのClientでは動作するか心配だったのですが、動くのでしょうか?
また、公式サイトを見てみたのですがバージョンが10からしか置いてありませんでした。
0857NAME IS NULL
2009/07/07(火) 14:21:13ID:???そんなに心配なら8.1.5のクライアント入れれば?
大抵前後2世代分くらいなら接続出来るよ。
まぁいずれにしてもサポート対象外だから、
何か不具合あっても泣かないでね。
0858NAME IS NULL
2009/07/07(火) 14:45:14ID:???了解です。
8.1.5のインストールディスクを紛失してしまっている状態のため、公式からダウンロードができる10.1.0.4をインストールしてみます。
レスありがとうございました。
0859NAME IS NULL
2009/07/07(火) 16:42:15ID:???あとでもいいから 10g の開発ライセンス買うようにな。
0860NAME IS NULL
2009/07/07(火) 19:37:42ID:???ライセンスなしは茨の道だぜ。
あとクライアントの対照表がどっかにあったと思うがちゃんと調べて使ったほうが吉だぞ。
0861NAME IS NULL
2009/07/07(火) 20:08:12ID:???下記参照されたし。
ttp://selolo.blog5.fc2.com/blog-entry-14.html
後、ライセンス関連で微妙な話題だけど、
Oracle-XEのクライアントってあるじゃん?
あれって10gR2クライアント相当で使えないかな?
0862NAME IS NULL
2009/07/07(火) 20:37:50ID:???8.1.5は回避不能な不具合多数のため、
8.1.6か8.1.7に更新しましょう、というか
8.1.7にしてください、ぜひおながいします。
というORACLE社のアナウンスがあった記憶がある。
7〜8年前(2001年〜2002年ぐらい)。
0863NAME IS NULL
2009/07/07(火) 23:22:20ID:???特に高負荷でもないに、メモリがなくなります(memfreeがすくない)。
topでみてもorcale以外メモリを沢山使っているプロセスはないんですが。
0864NAME IS NULL
2009/07/08(水) 00:04:59ID:???もしLinuxならmemfreeが少ないのは普通。
0865NAME IS NULL
2009/07/08(水) 00:14:58ID:???0866NAME IS NULL
2009/07/08(水) 00:20:38ID:???0867NAME IS NULL
2009/07/08(水) 00:26:52ID:???0868NAME IS NULL
2009/07/08(水) 01:02:46ID:???0869NAME IS NULL
2009/07/08(水) 01:09:11ID:???Linuxは、メモリに余裕がある場合でも、
使われていないページをswapに追い出して
キャッシュ用のスペースを作ろうとするので、
少量のsoは常に発生しうる。
つーかtop見たなら、RSSやったかRESやったか言うのが
使用メモリ量だから、それ見れ。
0870NAME IS NULL
2009/07/08(水) 03:26:01ID:???10gクライアントはデフォルトでは8iには繋がらないようになっていたはず。
パッチ充てればいいけど。
面倒だから9iクライアント入れておけ。
0871NAME IS NULL
2009/07/08(水) 03:32:26ID:???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 NULL
2009/07/08(水) 09:43:28ID:???了解です。恐らく、データベース自体も古くなってきているので一度買い換えると思います。
>>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のパッチのことを指すのでしょうか?
0873872
2009/07/08(水) 09:44:20ID:???0874NAME IS NULL
2009/07/08(水) 12:19:45ID:???あとでDB買うからとかじゃなくて、クライアントインストールした時点でそのライセンスは購入な。
0875NAME IS NULL
2009/07/08(水) 21:52:18ID:???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 NULL
2009/07/14(火) 06:06:45ID:CXaxA+Js旧サーバのOracle 9i から新サーバのOracle 10g にDBリンクを張って、
9i上のテーブル更新を10gに反映させようとしています。
マニュアルには「DBリンクを共有することによって、異なるセッション間でも
セットワーク接続が共有される」とあるのですが、
共有されるネットワーク接続とは具体的に何を指しているのでしょうか?
共有リンクにするメリット・デメリットはそれ以外にもあるのでしょうか?
0877NAME IS NULL
2009/07/14(火) 08:02:12ID:???ttp://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19224-02/ds_concepts.htm
共有リンクは、通常のデータベース・リンクと次の点で異なります。
・データベース・リンクを介して同じスキーマ・オブジェクトにアクセスする
異なるユーザーの間で、ネットワーク接続を共有できます。
・ユーザーが特定のサーバー・プロセスからリモート・サーバーに接続を
確立するときに、そのプロセスからリモート・サーバーに対してすでに
確立されている接続を再利用できます。
接続を再利用するには、その接続が同じサーバー・プロセスから
同じデータベース・リンクを使用して確立されている必要があります。
セッションは異なっていてもかまいません。
非共有のデータベース・リンクでは、複数のセッション間で接続が
共有されることはありません。
・共有サーバー構成で共有データベース・リンクを使用すると、
ネットワーク接続はローカル・サーバーの共有サーバー・プロセスの
外部で直接に確立されます。ローカル共有サーバーでの非共有の
データベース・リンクでは、この接続はローカル・ディスパッチャを
介して確立されるため、ローカル・ディスパッチャのための
コンテキスト・スイッチングが発生し、データがディスパッチャを
経由することになります。
0878NAME IS NULL
2009/07/14(火) 08:20:15ID:???俺なりの見解ですが、データベースリンク作成時に利用した
ID、パスワードを用いるCONNECTが共有されると理解してます。
多数の利用者(100人とか)がデータベースリンクを利用する場合、
非共有データベースリンクでは、
データベースリンク作成時に設定したID、パスワードを用いて、
SQLを実行する度にリモートデータベースにCONNECT
していたので、メモリリソースの無駄遣い、CPU時間の無駄遣い
と考えたのだろうと理解しています。
0879NAME IS NULL
2009/07/16(木) 09:52:49ID:???0880NAME IS NULL
2009/07/16(木) 14:02:18ID:???世の中は二者択一。自分で作るか作ってもらうか。
作れないなら高くても依頼するしかないだろう。
DBの種類もまかせるしか無いだろう。
0881NAME IS NULL
2009/07/16(木) 19:17:30ID:???逆に誰もが知ってる大企業の取締役が
Excelでヒイヒイ言いながら損益の資料を作ったりしています。
損益に数千万円の誤差が出た、なんて逸話があります。
その逸話の企業は、Excelで損益計算するのをやめたそうです。
0882NAME IS NULL
2009/07/16(木) 20:42:13ID:???みんなが知ってるN○○と無名の小企業
どっちにシステム作ってもらっても似たり寄ったりなのに
どちらが選ばれるかは自明だろ?
そういうことだよ
0883NAME IS NULL
2009/07/16(木) 21:57:55ID:???誤入力ならともかく
0884NAME IS NULL
2009/07/16(木) 23:16:10ID:???0885NAME IS NULL
2009/07/17(金) 07:19:01ID:???私が聞いたのは、経営戦略上の
重要な指標値(小数点あり)を計算するロジックに、
誤差を増幅させてしまう処理が、
そうとは知らず含まれていて・・・なんて話でした。
ttp://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml
こういうの、ご存じないですか?
>>884
それです。
0886NAME IS NULL
2009/07/17(金) 07:52:30ID:???0887NAME IS NULL
2009/07/17(金) 08:04:27ID:???式はどこにいれるの?どうやったら印刷できるの?
とリアルで聞かれたことがある。そなもん売りつけるなよ。
0888NAME IS NULL
2009/07/17(金) 10:34:20ID:???検索とかめんどくさそうだしLAN内のPC全部にExcel入れてExcelの共有ファイル開くとか効率悪そうな事してる。
仕事情報誌で「要エクセル」とか書いてある企業はたいていそんな企業。
データベース一式売り込む絶好のカモ。
0889NAME IS NULL
2009/07/17(金) 10:56:42ID:???どうせMySQLとか知らないだろうしOracleでいいんだよ
0890NAME IS NULL
2009/07/17(金) 19:01:27ID:???素人がDB管理して、ある日DBが壊れました、バックアップがしっかり
できてなくて復旧できませんでした、なんて言われたらたまらない。
0891NAME IS NULL
2009/07/17(金) 19:56:09ID:???MySQLとかPostgresで安価に構築し(てるように見せかけ)て、
システム構築してやったほうが営業上お得じゃね?
Oracle 100万円 + システム開発費用 100万円=200万円の原価より、
MySQL 0円 + システム開発費用 100万円=100万円の原価で営業かけたほうが、
客目線では安いし、どうせ違いなんて中小規模じゃ大差ないんだし。
0892NAME IS NULL
2009/07/17(金) 21:22:57ID:???いかないからなぁ。「MySQL使える人」で募集かけてもロクなのいやしねぇ。
0893NAME IS NULL
2009/07/17(金) 21:36:54ID:???MS系はそこが強いよな
Oracleはバックアップの難易度がちょっと高い
>>891
Oracleなら安いパートナーが使えるんだよ
>>892
PostgreSQLも似たような状況?
日本でMySQLって安いベンチャーとか、WEBのおまけでシステム組んでるとこってイメージなんだが
0894NAME IS NULL
2009/07/17(金) 22:27:08ID:???0895NAME IS NULL
2009/07/17(金) 22:53:17ID:???あれ大手5社以外に取らせる気ないだろ
0896NAME IS NULL
2009/07/17(金) 23:45:25ID:???初学者ならともかく、実務やってる人にとっては、講座のレベルは低いし。
0897NAME IS NULL
2009/07/19(日) 15:21:09ID:???単純に顧客が選択できるサービス毎に連番振って管理すればいいやとか思ってたら、
過去にあった特定のサービスが細分化して、あるサービスグループだけ切り取るのが大変になってしまいました。
そこでプライマリキーに連番を使用するのを止め、サービス名そのものをプライマリーキーにし、
GROUP1_SERVICE1
GROUP1_SERVICE2
GROUP2
のように管理した上で取り出す時はLIKEなどを使用しようと考えているのですが、
これで問題ないでしょうか?
アドバイスいただければ幸いです。
0898NAME IS NULL
2009/07/19(日) 15:44:04ID:???検索キーに使いたいだけなら索引を張ればいい。
複数のカラムを纏めて1つの主キーや索引にすることができる。
名前というのは将来的に変更される可能性があるから主キー等はコードとして持つこと。
…と文の意味がよく分からないので適当に言ってみた。
0899NAME IS NULL
2009/07/19(日) 16:27:00ID:???ありがとうございます。複数のカラムを主キーにするということですね。
例えばOracleのデフォルトで用意されてるdept表とかはdeptnoが設定されていますが
dnameを主キーにした方が参照する際も可読性も増して便利なんじゃないかと思ったんです。
将来部門名が同じでも内容が異なる部門が発生する可能性とヒューマンエラー排除のどちらを優先すればいいのか。
0900NAME IS NULL
2009/07/20(月) 01:05:16ID:???INSERTするときに主キーは自動でカウントアップしたいです。
SEQUENCEを使用しない場合、どんなやり方があるの?
非PL/SQLで。
INSERT INTO CUSTOMER (CUSTOMER_ID,CUSTOMER_NAME) VALUES(SELECT MAX(CUSTOMER_ID) + 1 FROM CUSTOMER, '顧客A')
みたいにできるのかな?
でもこの場合、1件も無かった場合は・・・
0901NAME IS NULL
2009/07/20(月) 09:01:25ID:???それでは二人がトランザクション切って同時にINSERTしたら番号がかぶってしまう
0902NAME IS NULL
2009/07/20(月) 11:56:37ID:???無理なんだ。
0903NAME IS NULL
2009/07/20(月) 13:08:00ID:???パフォーマンス無視していいのなら、采番表を作って、そいつを悲観ロックで取るという方法だろうな。
0904NAME IS NULL
2009/07/20(月) 13:41:58ID:???ないだろうが、なんでsequenceを使いたくないのか、だな。
0905NAME IS NULL
2009/07/20(月) 23:06:16ID:???0906NAME IS NULL
2009/07/21(火) 00:08:24ID:???0907NAME IS NULL
2009/07/21(火) 00:44:20ID:???いや、本人じゃないから知らないよ。
画面に表示するIDなら飛び番しないように
実装しろと言われてもおかしなことではない。
0908NAME IS NULL
2009/07/21(火) 02:00:47ID:???0909NAME IS NULL
2009/07/21(火) 02:21:23ID:???たぶんそれは要件に反する
0910NAME IS NULL
2009/07/22(水) 09:24:04ID:???利用者がごくわずかで、同時の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 NULL
2009/07/22(水) 09:38:42ID:???目的が「特定のグループに属するサービスを一括指定する」ならば、
サービス表以外に、サービスグループ表、リンク表を実装するのが定石。
SERVICE (SERVICE_ID, SERVICE_NAME)
SERVICE_GROUP (GROUP_ID, GROUP_NAME)
SERVICE_GROUP_LINK (GROUP_ID SERVICE_ID)
実装例としては、
サービス選択画面にて「名前」で検索させたとき
サービス名での検索結果とサービスグループ名での検索結果
の両方を表示して、サービスグループが選択された場合は、
LINK表にあるサービスを全て選択したとして動作する、なんて感じ。
0912NAME IS NULL
2009/07/22(水) 19:43:29ID:???ご教授願います。
(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 NULL
2009/07/22(水) 21:00:34ID:???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 NULL
2009/07/22(水) 21:15:16ID:???あとは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 NULL
2009/07/22(水) 21:24:36ID:PNVb1M3BそれだとA、B共にNULLの場合0になる
0916NAME IS NULL
2009/07/22(水) 21:44:11ID:???0917NAME IS NULL
2009/07/22(水) 21:45:10ID:???0918NAME IS NULL
2009/07/22(水) 22:01:40ID:???0919NAME IS NULL
2009/07/22(水) 22:11:29ID:???0920NAME IS NULL
2009/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 NULL
2009/07/22(水) 22:55:33ID:???まっ、手っ取り早いのが
select * bulk collect into arrary from
(
select * from table1 where hogehoge
union all
select * from table2 where hogehoge
)
すまんが、意味がない限り"union all"に差し替えさせてもらった
0922NAME IS NULL
2009/07/22(水) 22:59:58ID:???もう再現しにくいだろうけど、
ビューで使っているテーブルの定義が変更された場合、
ビューのステータスはINVALID状態になる。
SELECT STATUS FROM USER_VIEWS WHERE VIEW_NAME='xxx';
で見てみよう。
ALTER VIEW xxx COMPILEするか、
一度ビューをSELECTすると自動的にCOMPILEされる。
そうすると、DESCで見える構成が適切に更新される。
0923NAME IS NULL
2009/07/22(水) 23:08:47ID:???DECODE関数はどう?
SELECT DECODE(A.COL001,B.COL001,'1','0') AS COL001_FLAG
たぶん、NVLを追加せずともイケると思うんだけど。
0924920
2009/07/22(水) 23:10:11ID:???ありがとうございます。
明日会社でやってみます。
ちなみに教えていただいたSQL文は
()の中だけのSQL文に比べて実行速度は
かなり落ちるでしょうか?それともほとんど変わりませんか?
元の質問に書けていなかったのですが、アプリで実装する前に
SQLの大体の実行速度を計りたいのです。
0926NAME IS NULL
2009/07/23(木) 00:14:59ID:???それは環境次第、データ量次第
一つ言えるのが、データ量によるけど"UNION"と"UNION ALL"とでは
劇的にパフォーマンスが変わるよ
0927NAME IS NULL
2009/07/23(木) 08:30:56ID:???SQL*PlusからPL/SQLブロックを実行すればいい。
ttp://www.shift-the-oracle.com/sqlplus/tutorial/execute-plsql.html
0928913
2009/07/23(木) 21:21:57ID:???レスくらたみんあさんくす
0929NAME IS NULL
2009/07/26(日) 21:24:14ID:???アーカイブ作成してる間SQLの応答が返ってこないんだけどなんで?
REDOグループは5つあるし空き領域も十分だしCPU使用率も10%程度。
0930NAME IS NULL
2009/07/26(日) 22:35:34ID:???HDDが遅いんじゃないの
0931NAME IS NULL
2009/07/27(月) 06:43:39ID:???ttp://perfopy.ashisuto.co.jp/oracle_performance_educ/taiki_event.html
こんな感じにV$SYSTEM_EVENTビューを使って待機イベントを調べられるはず。
0932NAME IS NULL
2009/07/27(月) 08:26:18ID:nmXGDGSsハードでストライピングとミラーリングしてるんだけどASM使うメリットってある?
RAWデバイスで十分?
0933NAME IS NULL
2009/07/27(月) 11:54:11ID:???つか、OSくらい書け。
RAC使うなら、ASMにしておいたほうがいいかもしれんが。
0934NAME IS NULL
2009/07/27(月) 12:29:21ID:???RAW使うぐらいならASMの方が領域管理が楽といえば楽かもな。
でも>>933が言っている様にRAWの性質はO/Sにかなり依存するからな。
0935NAME IS NULL
2009/07/27(月) 12:31:21ID:???あとOracle 12gではRAWは完全にサポートしなくなると米Oracleは発表した。
0936NAME IS NULL
2009/07/27(月) 13:29:28ID:nmXGDGSs0937NAME IS NULL
2009/07/27(月) 19:43:32ID:???実績持ってる人がいるかもしれないよ。
ま。
RACなら、ASMを利用するのが普通みたいだけどね。
ASMも内部的にはRaw Deviceを扱っているというし。
0938NAME IS NULL
2009/07/27(月) 20:06:31ID:???このときは動的SQL(execute immediate)を使えば良いのでしょうか?
その場合、動的SQLを使用した場合の懸念点などあるでしょうか?(パフォーマンス面など)
0939NAME IS NULL
2009/07/27(月) 20:36:48ID:???SQLインジェクチオンに気をつけなッ!
0940NAME IS NULL
2009/07/27(月) 21:53:41ID:???俺は、明示カーソルでOPEN、FETCHをしておいて
CLOSEをよく忘れる。
動的SQLを利用した時、特に忘れやすい。
CLOSEせずに同じカーソル名で動的SQLをOPENしたり。
我ながら小学生レベルだと思う。カナシイ。
0941NAME IS NULL
2009/07/29(水) 20:03:01ID:???パフォーマンスは明らかに下がる
0942NAME IS NULL
2009/07/29(水) 20:50:31ID:???手続きも楽だし。
0943NAME IS NULL
2009/07/29(水) 21:03:16ID:???パースや実行計画のコストが無視できないような短時間で終了するクエリでならば明らかだが、
複雑で時間のかかるクエリではそうとも限らん。特にデータに偏りがある場合などは。
0944NAME IS NULL
2009/07/29(水) 21:13:57ID:???0945NAME IS NULL
2009/07/29(水) 21:48:41ID:???0946NAME IS NULL
2009/07/29(水) 21:53:06ID:???0947NAME IS NULL
2009/07/29(水) 21:56:27ID:???俺は分からん・・・
0948NAME IS NULL
2009/07/29(水) 22:14:44ID:???その都度実行計画を作る方がトータルのコストが低い場合がある。
オプティマイズをミスった場合のペナルティは場合によっては非常に
大きいから、あたりまえといえばあたりまえ。
0949NAME IS NULL
2009/07/30(木) 07:30:02ID:???動的SQLに埋め込んでルールベースで動かす、
というのも、オプティマイズをミスった場合のペナルティから
回避する方法の一つ。
俺の経験では、コストベースオプティマイザに任せた結果、
大規模な表同士のジョインでハッシュジョインが
選択された時に一時表領域を食い尽くして、
尋常じゃないレベルまで性能低下するケースがあった。
ちなみに/*+ RULE */ヒント文を埋め込むと、
ソートマージジョインか、ネステッドループジョインの
どちらかになります。
0950NAME IS NULL
2009/07/30(木) 08:32:36ID:???「俺が設計したファッキンテーブルじゃねえよ糞ったれ」
という事もあるかも知れん。
>>946
部屋にエアコンなくてイラついてんのか?
0951NAME IS NULL
2009/07/30(木) 20:36:56ID:???0952NAME IS NULL
2009/07/31(金) 02:18:47ID:???今、Microsoft Office InfoPath 2007を使っているのですが、
Oracleに接続してDBの値を使えるらしいのです。
(DBから取得した値をテキストフォームに挿入ということがやりたいです。)
ですが、肝心のOracleへの接続方法が分かりません。
スレ違いかもしれませんが知っている方がいらっしゃいましたら
教えて頂けないでしょうか。
0953NAME IS NULL
2009/07/31(金) 06:42:43ID:???著作権者が会社だから公開できないや・・・
ttp://www.atmarkit.co.jp/fdb/rensai/excel2oracle02/excel2oracle02_2.html
とりあえず、上記を参考にExcelでの接続を体験して、
自分なりに改造してVBAの書き方を理解してから、
InfoPathに移植した方が良いのではないかと思います。
Oracle接続するExcelファイルは、テストツールとしても
有効活用できますから。
0954NAME IS NULL
2009/07/31(金) 07:25:48ID:???ありがとうございます。
以前にVBAでのORACLEの接続経験はあるのですが、
InfoPath2007はVSTAを使ってC#orVB(今回はC#を使おうと思ってます)
で記述する感じでした。
試しにC#でそれらしい記述を書いてみたのですが、usingでOracle接続に必要な
クラスをインポートした所、エラーになり、どんな設定をすれば使えるように「なるのか
が分からないというのが今の状態です。
プログラムを書かないで接続する方法があればそちらで接続したいのです(SQL Server
とかはInfoPathの設定で接続できるみたいです)。
ですがOracleは今の所の調べではそういう設定は無さそうでした...
0955NAME IS NULL
2009/07/31(金) 18:37:36ID:???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利用者)は化石になるね。
0956952
2009/07/31(金) 21:12:33ID:???必要なライブラリ(?)を"参照の追加"で追加しないとOracele接続クラスの
メソッドが使えなかったみたいです。
Officeはそこまで使わないので設定の流れが分からなくて...面目ないです。
しかしC#はライブラリが充実していて結構使い易いですね〜
以上お騒がせ致しました。
0957NAME IS NULL
2009/07/31(金) 22:00:09ID:???0958NAME IS NULL
2009/07/31(金) 22:34:05ID:???0959NAME IS NULL
2009/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 NULL
2009/08/01(土) 16:59:51ID:???ttp://www.shift-the-oracle.com/plsql/select.html
に書かれているような、実行時のエラーを経験している。
-------------------------------------------------
ORA-01422: 完全フェッチがリクエストよりも多くの行を戻しました
-------------------------------------------------
多分、同じ事になるんではないか。
0961NAME IS NULL
2009/08/03(月) 23:13:01ID:???Oracle10gとWindowsCE5.0って直接SQLのやり取りって出来ない?
どうも、WindowsCE5.0用のオラクルクライアントが無いようなのですが。
直接SQLでやり取り出来る方法があれば教えてください。
環境
・PDA(WindowsCE5.0)
・.NetCompactFramework2.0
・VB.net(VS2005)
0962NAME IS NULL
2009/08/04(火) 16:50:28ID:???oracleってどういった業務に使われてるんですか?
0963NAME IS NULL
2009/08/04(火) 16:52:24ID:n7ZF7BFv0964NAME IS NULL
2009/08/04(火) 17:21:36ID:WF6K2+ixMac OS X Tiger(PPC)で動くらしいのですが
LeopardはPPCとIntelの両方で動くのでしょうか
R2はIntel Mac版があるようなのですが・・・
0965NAME IS NULL
2009/08/04(火) 20:46:17ID:???CE用のクライアントは聞いたことないね。
ミドルウェアを買う必要あるんじゃないかな。
>>962
CRM(カスタマーリレーションシップマネジメント)
SCM(サプライチェーンマネジメント)
SFA(セールスフォースオートメーション)
ERP(エンタープライズリソースプランニング)
KM(ナレッジマネジメント)
などです。
0966NAME IS NULL
2009/08/04(火) 23:47:42ID:???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 NULL
2009/08/05(水) 01:36:05ID:???Javaが使えるなら確かJDBCのThinドライバでクライアントの
インストールなしにサーバに接続できた気がする。
0968NAME IS NULL
2009/08/05(水) 07:50:03ID:???3ヶ月に1回ぐらい、知らぬうちに工場出荷状態に戻ってて、激怒。
調子が悪くて自分でハードリセットする羽目になって、涙目。
Windows Mobileという製品を十分評価してからの方がいいよ。
0969NAME IS NULL
2009/08/05(水) 11:49:38ID:lbXkSQVvユーザー名が全角10文字より長い場合エラーになるのですが
仕様ですか?
0970NAME IS NULL
2009/08/05(水) 19:49:58ID:???このスレ住民には、そのような使い方してる人は、
いないと思います。
普通は半角英数字とアンダースコア(A-Z、0-9、_)
だけ使って、先頭はアルファベットで、
30バイト以内でユーザー名を設定しますよ。
TARO_YAMADA
GREATSYSTEM360
のような感じですね。
ちなみに、全角10文字より長いとエラーが発生する
というのは、UTF-8では日本語は3バイトなので
30バイト制限に引っかかっているのかもしれません。
0971NAME IS NULL
2009/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 NULL
2009/08/06(木) 08:30:58ID:???民主党か?
売国奴は日本から出て行け。
0973NAME IS NULL
2009/08/06(木) 09:20:08ID:???バイトで処理してるアプリの対応は必要だったが最終的にはすっきりした。
0974NAME IS NULL
2009/08/06(木) 11:27:44ID:???NCHAR、NVARCHAR2に定義変更すればいいんじゃない?
多分文字コードはUTF16で定義されてるだろうから、
クライアントの長さチェックの修正も必要ない。
0975NAME IS NULL
2009/08/07(金) 00:34:30ID:???記憶でレスするので間違えてたらスマソ。
(3) の Import で SJIS→UTF8の変換が必要と判断され、
Import 時の CREATE TABLE でカラムサイズ1.5倍が動い
た気がする。なのでDDLを作り直したほうが良いかもしれない。
あと CSALTER でも SJIS→UTF8はスーパーセットじゃない
のでNGのはず。
ナショナル・キャラクタセットへの変換は、アプリによってはフェッ
チ時のAPI変えたりとか面倒なケースがあったような。
0976NAME IS NULL
2009/08/07(金) 06:05:16ID:???私も同じ考えでしたから、偉そうに言えませんが
日本の企業が韓国、中国に進出するために
必要なんだそうです、上司いわく。
>>973-975
参考になりました。ありがとうございます。
さて、土日に自宅で頑張ってみます。
0977NAME IS NULL
2009/08/14(金) 07:21:24ID:???0978NAME IS NULL
2009/08/19(水) 14:49:32ID:???エクスポートは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 NULL
2009/08/19(水) 17:51:33ID:???0980NAME IS NULL
2009/08/19(水) 21:44:53ID:???書き込みを読んで、なにも調べずに想像だけど。
plsql〜のエラーってことはさ、PLSQLのコンパイルに失敗しているってことでしょ。
exp/impってさ、テーブルやらインデックスやらビューやら権限やらPLSQLやら
ありとあらゆるオブジェクトが対象になっているのね。fullでやると。
んで、今回の11gから9iがテーブルのデータだけで良いってんなら。
fullやめて、tablesパラメータでテーブル全部指定してテーブルだけ
インデックスもほしいならindexes=yで、データだけ入れれば?
んで、さらに、途中でエラーが発生してもエラー停止しないって引数
が(名前忘れた)あるからそれもyでつける。
これでデータだけならできんじゃね?
0981NAME IS NULL
2009/08/20(木) 09:21:14ID:???>>980
お返事ありがとうございます。
imp hoge/hage file=t.dmp tables=table1 ignore=y
でやってみましたが現象変わらずでした。
10g R2(?)以降はimp/expコマンドは正式サポートされていないようですし、
この関係で11g->9iのデータ移行は簡単にいかないのでしょうかね。
データだけで良いので、CSV経由ででも試してみます。
0982NAME IS NULL
2009/08/21(金) 00:02:08ID:???CSV経由するくらいなら、DATABASE Link接続でInsert Selectは?
0983NAME IS NULL
2009/08/21(金) 00:03:48ID:???0984NAME IS NULL
2009/08/21(金) 09:56:58ID:???DATABSASE Linkは使ったこと無かったのですが、後学のために試して
みたいと思います。ありがとうございました。
0985NAME IS NULL
2009/08/21(金) 13:45:03ID:???0986NAME IS NULL
2009/08/21(金) 22:43:27ID:???一般的にどんな方法とるの
0987986
2009/08/21(金) 22:46:52ID:???Oracleの9iで巨大なテーブルデータをロード、アンロードしたいんだけど、
一般的にどんな方法とるの?
今は、普通にPro*CからSELECT * FROM・・ってしてデータ取得して
全件とってきてるんだけど、一時表領域がパンクしてエラーになってる。
巨大テーブルの全件アンロードとロードって結構やりそうだと思うんだけど
これだっていう一般的な方法がぐぐっても見つからんかった。
0988NAME IS NULL
2009/08/21(金) 22:57:35ID:???ロード時、アーカイブログはオフる
0989NAME IS NULL
2009/08/21(金) 23:11:23ID:???サンクス、確かにそれが普通っぽい気がする。
逆になんでそんな実装をしているんだとおもいます?
やっぱり、やっぱりロード時にオフる必要があるからでしょうか?
普通にテーブルの全データ取ってきてるだけなのに。
実装が不自然すぎて逆に意図があるんじゃないかと思ってしまう。
0990NAME IS NULL
2009/08/21(金) 23:15:19ID:???一つ答えてもらったんだから自分でなんとかしろよ
0991NAME IS NULL
2009/08/21(金) 23:18:23ID:???それに質問だとしても質問スレなんだから何か問題あるでしょうか?
0992NAME IS NULL
2009/08/21(金) 23:37:44ID:???変な実装だと思った時は、素直にそう思った方がよい
(実際、無知から来る妙な実装を結構見てるから)
レス数が950を超えています。1000を超えると書き込みができなくなります。