2 :
NAME IS NULL:2011/09/04(日) 13:26:58.41 ID:qLfdP0RF
3 :
agesage:2011/09/04(日) 13:36:49.05 ID:???
ALTER SYSTEM ARCHIVE LOG {START|STOP};--旧式
ALTER SYSTEM ARCHIVE LOG {ALL|CURRENT|MANUAL};
この文と、
ALTER DATABASE {ARCHIVELOG|NOARCHIVELOG};
この文のやってることの違いがよくわからないので
上手い具合に解説きぼんぬ
廃止されたかどうかの違い
>>4 Alter database~の方はアーカイブログモードの有効・無効を切り替える。
Alter system~の方は、ログスイッチを発生させて、カレントのREDOログをアーカイブする。
7 :
4:2011/09/04(日) 18:29:25.18 ID:???
理解できますた。ありがとうございます
少なくとも ALTER SYSTEM ARCHIVE LOG ALL はログスイッチしないと思うんだが
9 :
NAME IS NULL:2011/09/05(月) 23:50:24.93 ID:Dz0BugTq
SqlServer出身ですが、
OracleではSQLにバインド変数を使用すると、バインドピーク機能により
早いもの勝ちで決まってしまった実行計画がキャッシュされ再利用され続ける
かと思いますが、
WHERE以下の変動が大きいSQLのみ個別にキャッシュを使用しないように
する方法はありませんか?
SQLSERVERで言うところの、OPTION(RECOMPILE)みたいなやつです。
>>9 ヒント句にCURSOR_SHARING_EXACTを付けてCURSOR_SHARINGを効かなくする
というのが該当しそうだけど
強制的に実行計画再作成させることはできないかも。
でも11g以降ならそもそも杞憂。adaptive cursor sharingでggrよろし
SQLの一部いじったり何かオプティマイザ・ヒント等つけると、
それらが完全一致するものの間でしか実行計画は共有されないよ。
個別に実行するSQLを切り替えられる場合はこのほうが手っ取り早い。
14 :
9:2011/09/06(火) 09:59:43.87 ID:???
>7さん
調べて見ましたがCURSOR_SHARING_EXACTはリテラルを強制的にバインド変数に置き換える設定(CURSOR_SHARING)を適用しないだけのヒントに見えるんですが…
>8
SQLインジェクション対策のため入力値をバインド変数化する規約があるんですよ
なのでバインド変数を使いつつも、都度変数の値を考慮した実行計画を生み出す方法が無いものかと…
キャッシュにヒットしないようにSQL文に無意味な検索条件とか、コメントとかをランダムに埋め込むとかも考えたんですが、何か間違った方向に進んでいる気分しかしません。
ORACLEはまだコストベースの取り扱いが十分成熟していないんですかね?
15 :
9:2011/09/06(火) 10:03:54.89 ID:???
間違えました
7→10
8→11
>12
そうなんですか
10gなんですよ〜
where句の値の変動が大きいSQLとそうでないSQLでオプティマイザの動き方を制御したいということなら
変動の大きいSQLで共有カーソル使わないようにするのはダメなの?
同じSQLでバインド変数の値によって実行計画が変わるからっていうことなら使えないけど
18 :
9:2011/09/06(火) 14:43:30.92 ID:???
>17
もちろんバインド変数の値によって実行計画が変わる可能性がある(というか変わるべき)という前提の話しです。
>16
まさにそういう話です。
やはりバインド変数を使用しないということで結論づけられていますが、プロジェクトでバインド変数を使うことがセキュリティ的に義務付けられており
守らないと納品ソースチェックでたたき返されることになります。
Oracle10gではセキュリティとパフォーマンスは両立できないと言っても、アプリ側で対応(変数値により実行計画のパターン毎にロジックでSQL文を振り分ける)しろと言われるかもしれません。
正直ハズレクジを引かされたような気分です。
バインド変数SQLをリテラルSQLに変換して実行とかできないのかなあ
そのSQL、遅いほうのバインド変数の値とプランの場合、実際のところ気になるほど時間がかかるの?
なぜ 11g に upgrade しないのか。
>>12 が言っているように 11g からの新機能を使わないと無理だろう。
何年も前のに対して「成熟していない」と言うのは無茶苦茶だな。
すでに 10g は古すぎるよ。
表領域AAAAに作ったテーブルとデータを
表領域BBBBにまるごともっていきたいのですが
SQL一本で行けるでしょうか@11g
23 :
9:2011/09/07(水) 00:09:07.66 ID:???
>21
新機能…正直、考慮不足のバグ修正では?という印象です。
とりあえず皆さんのおかげで、よくわかったのでありがとうございました。
OTNからダウンロードできるOracle10gって、メディアキットの10gと同じだってことは、
PSR4当てようと思えば普通にあたるし、逆にPSR4当てればEMの証明書の
有効期限切れバグなんかの問題もちゃんと出るってことなのかな
もちろん他のバグもちゃんと再現される
>>18 わざわざ振り分けロジック作らなくとも、ヒント句にリテラル値つっこんどけば、期待してる効果になるんじゃない?
27 :
NAME IS NULL:2011/09/07(水) 18:00:20.84 ID:zGegnJew
諸先輩方に質問です。
PL/SQLにて作成した、FunctionやProcedureが起動される際、
テーブルトリガーの様に決まったロジックを起動・実行する事は
可能なのでしょうか?
また、可能であれば、どの様に記述すれば良いのでしょうか?
目的としては、PL/SQL自体には手を入れず
PL/SQLの動作ログを取得したいと考えています。
宜しくお願いします。
環境:Oracle11gR2EE 11.2.0.1.0 (for Linux)
DML/DDL/DATABASE トリガーはあるけどそういうのはないんじゃないかい。
具体的にどこまでのログを取りたいのかにもよるけれど、
audit execute on ... で代用できるかもしれないし
hookするみたいに同名の PLSQL object を別スキーマに作ってその中で
ログを取得してからオリジナルをkickするように細工をできるかもしれないし、
alter system set sql_trace=true でも条件に合うのかもしれない。
>>32 もちろん製品版と全く同じだ。
だから面倒な時とか、メディア持っていない時とかはOTNからダウソして
普通にインスコする。
30 :
9:2011/09/07(水) 23:42:53.87 ID:???
>26
とりあえずSQLの末尾に、乱数をコメントとして追加することで対応してみます。
>>21 > 何年も前のに対して「成熟していない」と言うのは無茶苦茶だな。
10g、古い割に、成熟してねえべぶっちゃけ
10gの成熟度なんかどうでもいいが
SQL Serverは成熟してるとでも言いたいのかね?
つ〜か、Oracleの製品で成熟は期待してはいかんよ。
機能80%動けば出荷して、でもって客にバグ出しさせればいいって
ラリー自身がそう言っていたんだから。
正直どっちもどっちかな
ベンチャー企業かよ!って
つっこみいれたくなるような
少し試せばわかるようなレベルの低い
バグ残したベータ版を製品として出荷しちゃうし
なんか方向ずれてね?
SQL Serverの固有機能をOracleに求めるなよっつう話だろ
あとプログラマなら製品に合わせてプログラム組めやってことだし
同じようなプログラムしか組めないから、へぼいものばっかできる
PSRでのバグ修正数を数えていくと
バグが収束する前に次のメジャーバージョン出してる。
アコギな商売やで
それでもお客さんはオラクルを指定してくるんだよ
どんなにバグがあっても顧客との契約上、稼働させなきゃいけないSE体験(ダブルバインドエクスペリエンス)をもれなく体感
バージョン上がるといろいろ互換性が無くなるとか
この高コスト体質はどうにかならないのかマジでね
結論としては共有カーソルはもうちょっと賢くなれよってことで
Oracleの名が泣くぞと
基本的にオラクル推進派の大半は、パフォーマンスが不安定なコストベースではなく、安定的な動作を望めるルールベースがまだ使えると信じてる気がする。
そんなアホはいない
だがCBO関連で、まともな実行計画作らないとかってバグが未だに残っているってのは
さすがに勘弁してほしいと思う
てか実行計画を作るところがブラックボックスであり、想定通りの実行計画となるかどうか、
上記のバグはおいといて実際にEXPLAIN PLANしてみんと結局は分からん、というのもなぁ
何かパフォーマンス出ねえってことで、テスト機と本番系とでプラン取り比べることになったとき、
HASH JOIN使う使わないみたいな差が出ちまうと、面倒でたまらん
色々あってヒント句付けまくることになったが、それってCBOらしくねえよな実際
TABLE ACCESS FULLとかじゃねえんだしコストも大して変わってねえんだから別に問題ねえよってのが
常識になってほしいもんだぜ
コーディング屋の小僧どもが、本番系通りの実行計画が出ていればテストで抽出できたとか、
平然と言ってるのを聞くと張り倒したくなるぜ
直すのはアプリのロジックのくせによ
ヒントっていうと、CBOにはわからないけれど設計した人間にはわかる最適プランが
ある場合にCBOに強制させるのに使うのが本来の用途なのかな。
むやみにヒントをつけまくると CBO がヒント絶対視した結果ひどいプランを選択
したりする結果にもなりかねないので、怖いっちゃあ怖い。
厳密に言うと、コストを算出する元の情報が実際と乖離している場合には
コストが同じでもパフォーマンスに差があったりするので、table full scan とか
平然と使ってるようなプランだったら気をつけないといけないですよね。
・・・まあ正確な情報を使っていても、変なプランを選んでこのコストが一番
低いぜ、とCBOが言ってきたりすることもないわけではないので油断できない。
統計情報に関しては機能的にお粗末な部分と運用が面倒なのと
運が悪けりゃDB再構築が要なバグに当たったりするから
そういう意味でも油断できない
TYPO
「要な」→「必要な」
TIMPOとな
OCRについて質問なんですが
OCRと投票ディスクがすべてつぶれた場合は、再構築で元に戻せるんでしょうか?。
OCRのバックアップも壊れています。
再構築後、RMANでDBのデータだけ戻した場合、整合性は保たれるのでしょうか?。
11gR2です。宜しくお願いします。
>>49 OCRは、4時間ごとに自動バックアップされるはずだけどそれも壊れてるの?
後、ASMメタデータバックアップは取得せてるの? 11gR2からOCRもASM管理になっているから、ASMを先に復旧しなきゃだめだった気がする。
整合性とは何を差しているのかわからんけど、クラスタ構成の整合性がとれていなければ、RMANからのリストアもできない。
11gR2 でも OCR を ASM に置くのは必須じゃないよ
OCR は cluster 構成のレジストリであって、データベースとは独立しているもので、
普通に clusterware を再構築すれば clusterware をインストール後の状態に戻せるはず
データベースの整合性については心配する必要はない、そもそも RMAN で
リストアする先が RAC である必要もないし。
もしも全部ASMに置いてあった場合は、ASM disk上書きしたりしないように
注意してねー
>>51 クラスタウェア再インストールした後に、インスタンスとかのクラスタリソース手動登録する必要ない?
完全に壊れた時の話をしているんだから、手動登録すりゃいいじゃん、ってことになるだろ。
RACは壊れると面倒臭いんだね。
そうするとスーパーコンピュータでoracle動かす方うが運用は楽なのかな。
いまどきのスパコンはGPU積んでるから
まずOracleをGPUに移植するところからだな
仕事でOracle使うことになったのですがさっぱりわかりません
Oracleから逃げだす方法はないでしょうか
仕事から逃げ出す
>>49 1. 普通にCRSをインスコ
2. netca使ってリスナーの再構築
3. srvctl add database -d [DB名] -o [Oracleホームへのパス] -p [spfileへのパス] でDBを登録
4. srvctl add instance -d [DB名] -i [インスタンス名] -n [ノード名] でインスタンスを登録
5. RMAN使ってspfileをリストア
6. RMAN使ってcontrolファイルのリストア
7. RMAN使ってDBのリストアおよびリカバリ
>>58 すまん、5の前にASM上にディスクグループ再構築が入るのを忘れていた。
sqlplusで全パッケージをコンパイルしてからsqldeveloperでパッケージ見たら緑の虫アイコンが付いてる。
sqldeveloperでコンパイルしていけばアイコンは消えるんだか一気にコンパイルできない。
緑虫アイコンは無視していいのか?
>>60 dba_objectsのstatusで確認してみたら?
それがvalidだったら無問題なんだろうし。
sqldeveloperに何を期待してるんだ
>>49 49の者です。みなさん回答ありがとうございます。
自動バックアップはされているみたいなんですが、戻し方がいまいちわからなくて
ASMもつぶれていたら、そこも戻すと言われて、なんのことかわからずで
戻し方が確立されていないのだったら、一から戻せと言われまして
構築の手順書はあるからそれで構築し直せてと言われまして
構築終わればRMAからデータ戻せと言われまして
それで動くのか聞いたら、わからんと言われまして
先輩はなんとなく手順はわかるが自信ないから、お前やれと言われまして
構築し直して、データを戻したら、それで動くのか疑問を持ちまして質問しました。
clusterの部分とDBのデータの部分が直接関係していたら、構築し直してもだめなような気がしまして
切り離して考えることができるんですね。おお。
GRIDインストールだけでもOKですか?。
やはりGRIDインストール→DBインストール→インスタンス作成→バックアップから戻すとしないといけないのでしょうか?。
>>63 58をなぜに無視する?
その感じだと高確率でうまくいかないから、サポートに問い合わせたら?
>>63 DBインストールって言っているということは、マシンのディスクが
吹き飛んで ORACLE_HOME が消滅しているとかそういうことなのかい?
とりあえず、今何があって,、何が壊れているのか判断できていないような感じ
なので、サポートに問い合わせるのをお勧め。
サポート契約がなければ、がんばれ。
>>64 すいません。手順書にはGUIでのインストール手順しか載っていないので、
58で教えてもらった作り方がGRIDインストール→DBインストール→インスタンス作成
という流れのコマンドか判断できなくて…。コマンドはオプションがいっぱいあるので難易度が高いです><。
サポートには問い合わせ中みたいで返信が返ってこない状態みたいです。
>>65 ORACLE_HOMEにはアクセスできます。ただGRIDアンインストールしてそれをもう一度入れなおすだけならいいのですが、
全部初めからやらないといけないとなると、インストールの順番があると手順書に書いてありまして、
そこにDBインストールも含まれているので、DBもインストールし直さないといけないのかと思いまして
DB保守3か月になりますが、意味不明な事態でお腹痛いです。
>>66 58の手順では、インスタンス(データベース)の作成はしていない。その代わりにクラスタリソースの登録だけしている。
データベースを作成しない理由は、新規に作成したデータベースに対して、過去のデータベースのRMANバックアップからリストアすることはできないから。
(だから先に制御ファイルだけをリストアする必要がある。)
要は、特殊なリストア手順を行う必要があって、それが理解できないのであれば、サポートの回答を待ったほうがいいよ。
ちなみにわたしは、58ではありません。
>>63 Grid homeにアクセス出来るのだったら自動バックアップから戻してみたら?
あとバージョンとプラットフォームは?
11.2.0.1と11.2.0.2とでは微妙に戻し方も違う。
Windows7(64) で使える 10g のクライアントって無いですか?
10g のDB管理画面が使いやすくて、よろしくお願いします。
DB管理画面てEnterprise Managerのこと?
Enterprise Managerなら64bit版のIE9やFirefoxで動くよ
EMだと「使いやすい」という条件がクリアできない
10gだと、まだ旧EM(DB consoleっていうんだっけ?)もあったような気がするから、どっちのことを言っているのかわからんね。
>>69が日本語としておかしいので、何を求めてるのか分からん
Enterprise Managerでいいんじゃねえの?
逆に、例えばWindowsXP(32)で動作するクライアントの、何が使いやすいとか思ってんの?
何を求めてるのか分からんのに答えれる不思議
>>66 CRSのりストアはこんな手順だ。
基本はコマンドでしか戻せないぞ。
1. ls -altr $GRID_HOME/cdata/<クラスター名>/* で、OCRの自動バックアップを確認
2. crsを排他モードで起動
- 11.2.0.1の場合は $GRID_HOME/bin/crsctl start crs -excl
- 11.2.0.2の場合は $GRID_HOME/bin/crsctl start crs -excl -nocrs
3. ASM上のディスクグループの再作成
sqlplus / as sysasm
SQL> create diskgroup <DG名> external redundancy disk 'ORCL:ASMD40' attribute 'COMPATIBLE.ASM' = '11.2';
4.rootユーザーでocrのりストア
# $GRID_HOME/bin/ocrconfig -restore $GRID_HOME/cdata/<クラスター名>/backup00.ocr
5.11.2.0.1の場合は下記のコマンドでcrsデーモンの起動 (11.2.0.2の場合にはスキップ)
# $GRID_HOME/bin/crsctl start res ora.crsd -init
6. 下記のコマンドでvotingデバイスの再作成
# $GRID_HOME/bin/crsctl replace votedisk +CRS
7.ASMのspfileの再作成
8.CRSを再起動
$GRID_HOME/bin/crsctl stop crs -f
$GRID_HOME/bin/crsctl start crs
基幹システムをホスティングに移行しようと計画しております。
とあるデータセンターからの提案で、ライセンスを気にせず9iから11gまでのエンタープライズ版を
自由に使え、正規保守もその会社経由で受けられるサービスがあると言うのですが、
ご存知でしょうか?
VMwareでの提供らしいのですが、OracleがサポートしているOSなら何でも構わないらしいのです。
>>76 というかVMWareってそんなに全部のO/Sに対応しているものなのか?
>>77 あらかじめセットアップ済みのVMwareのイメージが用意してあって、そいつを使うとか言ってました。
VMwareがどんなOSに対応しているかは不明です。
サービスは、Oracleとそこのデータセンターが包括契約みたいなのを結んでいるらしいです。
だからそのデータセンターが客にいくらで売ろうがOracleは関係ない、だから安く提供できるって言う話です。
Oracleのサイトにはそんなサービスは載っていないし、データセンターのサイトでも詳細は乗っていません。
もし似たようなサービスを受けてらっしゃるかたがいらっしゃれば、物理サーバとの比較など教えていただけたらと思いまして質問させていただきました。
あるんだとは思うけど、
仮想環境だとハード寄りのチューニングがし辛いから性能出なくてハマることもある。
先週末にオラクルマスターの試験受けいったら、サーバトラブルで試験受けられなかった。
来週にはなるかも?って言ってたけど、オラクル公式・ピアソンVUEのHPになんも告知がない。
都合の悪いことは告知しないんだろうか。高い受験料とってくるのに。
復旧状況どなたか聞いてませんか?
オラクルマスターって製品バクに関する知識とかも出題されるの?
>>78 良くも悪くもいろんなハードリソースを共有するってことじゃないかな。
SLAとかがちゃんとあればいいんだろうけど、ベストエフォートだと、基幹システムには向かないと思う。
ゲストが増えるに従って競合が増えていく。ハードのキャパを超えた時点で一気に性能が落ちる。
>>81 > オラクルマスターって製品バクに関する知識とかも出題されるの?
シルバーあたりだと、Opatchの使い方とかは出た気が
そういえば、何かのアドバイザが桁違いのメチャクチャな結果を出すとかいうバグがあるんだが、
そのバグにより出ている桁違いのメチャクチャな結果を見て良否を判断せよという問題を見て、
思わず失笑してしまいそうになったっけな
>>69 で質問したものです。
書き込んで下さった皆さん、ありがとうございました。
そして、説明不足で申し訳有りませんでした。
>>72 さんの指摘された、Javaで作られた感じの、管理画面です。
12gから、ブラウザを使った、WEB画面での操作が使い難く、質問しました。
管理者用でクライアントをインストールできれば良いので、
「10g のクライアント」などという表現で、混乱させてしまいました。
懲りずに、再度アドバイスを、よろしくお願いします。
9iのiや10gのgって何の略ですか
>>85 i => いい感じ
g => グングン来ている
というのは嘘だ。
i => Internet
g => Grid
面白くて腹が捩れそうだ
あぁ、まったくだな。
加齢臭がひどいギャグ
12g って。まだもうちょい先だろう。
11.3あたりからGridをやめてCloudにするんじゃね?
そういや10gが出た時に「Oracle10グラムって何?」って聞いてきたオヤジがいたな。
改行(笑)
長文失礼します。
トラブルシュートの方針を教えてください。
(環境)
開発サーバ1台と個人PC1台の環境。
サーバはWindows Server2003 StdにOracle10.0.2.0。
個人PCはWinXP Proとクライアント10.0.2.0。
(症状)
開発サーバのsqlpluswにて、あるSQLを発行するとsqlpluswが応答なしになります。
個人PCのsqlpluswから同じSQLを発行しても、sqlpluswが応答なしになります。
JDBC接続してプログラムから同じSQLを発行すると正常に終了します。
いずれの場合もOracleのインスタンス、リスナーは正常に動作しており、エラーなどは記録されていません。
OSのタスクマネージャではCPU使用率、メモリ使用率ともに高負荷にはなっていません。
また、個人でお勉強中のためサポート契約はありません。
(聞きたいこと)
まず応答なしになった状態でOracle本体の処理は終わったのか、処理中なのか調べたい。
応答なしのクライアントをそのままにして、別途sqlpluswにてv$session, v$session_wait, v$lockをみれば良いのでしょうか。
その他、ここを確認すべしという点を教えてください。
>>94 状況の確認は今考えてるところからでいいと思う
全く同じSQLをsqlplusw.exeで実行したら応答なしでsqlplus.exeなら普通に実行できるという事例があるし
sqlplusw.exeは昔からsqlplus.exeとは違うバグの多いモジュールなのでsqlplus.exeの方を使うほうがいいよ
94です。
お二方ともレスありがとうございます。
更に情報を集めた結果、まずはv$sessionとv$transactionを確認すれば良さそうだとわかりました。
sqlpluswがバグ多いという件についても調べてみたのですが、11gで廃止されているのですね。
EnterpriseManagerConsole(Java)もなくなってしまったようで残念です。
あれこれ作っちゃ放り出すのはまぁいいが、SQL*Plusを残すんであれば、
そのSQL*Plusをもっと機能拡張したり、変な制限を撤廃してほしいもんだよ
メンテできる人間がもう会社にいないのだろう
>>98 SQL*PlusのUNIX版はもっとreadlineとの親和性を高めてほしいね
コマンド補完や履歴くらいの機能はあってもよいな
お願いします。Oracleのアーカイブログモードでお伺いします。
アーカイブログファイルは
表領域と物理的に異なるディスクに置くということを聞きました。
会社向けの用途だと、どのような形で物理的に異なるディスクにおいているのでしょうか。
仮に、ディスク12本入るストレージ装置があったとして、
そのうち6本でRAID6(仮にディスクグループA)、残りの6本でRAID6(同、B)を構築して
ディスクグループAに、表領域、ディスクグループBにアーカイブログファイルとしているのでしょうか。
それとも、
ディスクn本入るストレージ装置を2台用意して、片方を表領域ファイル、
片方をアーカイブログファイル用にするのでしょうか。
耐障害性をどこまで上げるのか、予算はあるのかで設計が異なってくると思うのですが、
上にあげた2つの方法どちらでも、「異なるディスク」として問題がないのでしょうか。
ちょっと毛色の異なる質問かもしれませぬが、お教えいただけますようお願いします。
>>101 どっちでもおkだが、後者は勿体無い気がする
一番壊れやすいのはHDD
HDDが壊れたときに、表領域もアーカイブログがセットで死に、下手こいてオンラインREDOにも
アクセスできなくなったりすると、場合によっちゃ俺らのチンポ落とすくらいじゃ済まない
その影響を局所化するために、HDDを分ける事が推奨されている
ついでにアーカイブ時のパフォーマンス劣化も防げたりするので、更にお勧め
12本入るストレージなら
・REDOロググループを3つ作成、メンバーを3つずつ作り、HDD3玉にそれぞれ割り当て
ついでに制御ファイルも分散
・HDD2玉でミラーリング(容量が必要ならRAID6とかで)し、そこにアーカイブログを収容
・残りは表領域。余裕があるならデータ用とインデックス用の表領域で分けるかも
>>101 どちらも「異なるディスク」という意味では同じでしょうけど、表領域とアーカイブログのディスクを
分ける目的で後者の構成を採用するのは違和感がありますね。
「表領域と物理的に異なるディスクに置く」というのは耐障害性というより性能面からの考慮だろうと
思います。
オンラインREDOログやアーカイブログをアクセス頻度の高い表領域と同じディスクに置くと
I/Oが競合して性能への影響度が大きくなります。
数TBの表領域用にRAID6のディスクグループ、オンラインREDOとかアーカイブとか制御ファイル用に
RAID1のディスクグループという分け方はやったことがあります。
企業向けのシステムだからこうだ、みたいな決まりきったものはなくて、ASMを使うかどうかとか
バックアップ運用はストレージのレプリケーション機能を使うかなど、要件次第ということになるでしょう。
具体的な要件を提示すれば具体的なアドバイスも出てくるかもしれません。
94です。先日はありがとうございました。
ためしてみたところ、応答なしになっている間は延々と(強制終了は60分後)処理をしていました。
実行計画を取得したところcost24という結果で、事実JDBC接続では結果が1秒未満で戻って来ます。
原因究明は私の知識では難しそうなのでもう諦めます。
ありがとうございました。
諦めるの早過ぎだろ
あきらめたらそこで試合終了ですよ
焼きそばの湯切りでも同じことが言えるね
バグでそういう状況になることがあるということが分かったんだし
パッチ当てれんのだからそれ以上やるのは時間の無駄じゃん
実行計画でcostの値しか見てなさそうなのは気になるけど
それはまた別の壁にあたるだろ
ソラリス版の10gR2で質問です。
Aというテーブルと同じ構造のテーブルBを作り、Aのデータを一部INSERTして、しばらくAとBで別々に運用します。
その後、AをCにリネームして、BをAにリネームします。このとき、AとBの既存のindexは自動ではリネームされないものの、テーブルの紐づけは変更されると認識しています。
リネーム後のA(元B)を運用で引き続き使用したいのですが、統計情報を採り直したりした方がよいのでしょうか?リネームのタイミングでレスポンスが悪化したりすることを恐れています。同様の処理をするテーブルがたくさんありデータは数千万件あるものもあります。
なにかアドバイスがあれば、教えてください。よろしくお願いします。
リネームするしないに関わらず
統計情報は毎晩とるものだと思っています
>>110 レスありがとうございます。
私は後からプロジェクトに参加したので、はっきりした理由はわかりませんが、現在は毎晩は統計情報はとっていません。一部のテーブルは月一で古いデータを削除したタイミングで採っています。
理由を聞いたところ、統計情報を撮り直してレスポンスが悪くなると困るから、と言われたことがあります。
統計情報はそのテーブルの特性に合わせて更新するように運用するものです。
>>112 アドバイスありがとうございます。
日々の統計情報取得にかんしてはテーブルごとに考えたいと思います。他にリネームする際に注意すべきことがあれば、教えてください。
テーブルをリネームしたときって、トリガーとかビューって、どうなるんだろう
>>114 試してみたぞ。
思い切りINVALIDになるな。
まあ、予想通りの動作と言えばそうだな。
SQL> select object_name,object_type,status from user_objects;
OBJECT_NAME OBJECT_TYPE STATUS
------------------ ------------------- -------
IND_HOGE_HOGEKEY INDEX VALID
HOGE TABLE VALID
TRIG_BOGE TRIGGER VALID
SQL> alter table hoge rename to boge;
Table altered.
SQL> select object_name,object_type,status from user_objects;
OBJECT_NAME OBJECT_TYPE STATUS
------------------ ------------------- -------
IND_HOGE_HOGEKEY INDEX VALID
TRIG_BOGE TRIGGER INVALID
BOGE TABLE VALID
ビューは変わらんだろうな
>>116 少なくとも10gだとINVALIDになるぜ
な、なんだってー
定義文まではいじらん、と考えるとトリガーもビューもあぼんなのは概ね理解できるな
しかしインデックスはVALIDか
名前なんてOBJECTのIDに紐付いてるだけなんだから
インデックスがINVALIDにならないのも理解できるだろって
>>119 ふうん。だったら俺はこれからお前を殴る。
お前が動かなくなるまで止めないつもりだから。
お前の苦手な自力救済とやらをやってもいいんだぞ。
俺のやってる事はお前が良く言う不法行為って奴なんだし。
俺はお前が動かなくなるまで止めないつもりだから。
訴えたければ後でお前の好きな裁判でも何でもやってやるよ。
今ここで頼みの綱の警察を呼んでもいい。呼べるもんならな。
俺はお前が動かなくなるまで止めないつもりだから。
このコピペって何の前触れもなく唐突に沸くんだよな
何がしたいんだか理解できんからコワイ
アウトだな
この板って、逮捕者出したことあったっけ?
誰かが通報しなきゃ始まらんのでは?
もしかしてIDが???表示だからバレないとか思ったんじゃないだろうな
まさか・・・そんなアホは居ないよな
相手にした時点でおまえらの負けだと言ってみる
>>127は俯瞰してるつもりが実は同じ土俵に居るという典型的な例
親切なイケメンがOracleの話題を振ってくれますように
GoldenGateって使ったことある人いる?
Oracle8i → 11g移行の方法教えてくれ
132 :
NAME IS NULL:2011/09/23(金) 01:23:54.88 ID:F8w8Mw2K
DBの規模とかOSが変わるかとか移行で現行機を止めれる時間や期間とか何も具体的な情報なしで
10g経由のアップグレードって結論出せるわけないでしょ
VARRAY型についてなのですが値を検索するときに
select arrays.* from hoge, table(hoge.fuga_name) arrays
where arrays.column_value = 'aiueo';
といったSQLで検索できるのですが、
where移行だけで検索する方法はないものでしょうか?
select * from hoge
where fuga_name.column_value = 'aiueo';
のような感じでできればありがたいのですが。。。
Windows環境の話ですが、
Oracleのインスタンスってのは
Windowsのサービスの概念とは別物なんですか?
shutdownしてもサービスは「開始」のままだったので教えて欲しい
>>135 別物
サービス起動のオプションに、データベースも一緒に起動するかどうかの設定がある
プロシージャやパッケージの類をDBの外に取り出す方法を教えてください
138 :
sage:2011/09/23(金) 21:54:42.08 ID:Kh0sIEon
139 :
138:2011/09/23(金) 21:56:49.18 ID:???
あげてしまった。スマソ
user_source見りゃいいんじゃねえの
DBMS_DDLパッケージで抜ける
なんでオラクルはNULLと空文字区別できないんですか?
いったい何のメリットがあってそんなヘンテコな仕様にしちゃったの?
>>143 勝手な予想だが2000年問題みたく1レコードの行断片を短くできたからじゃないかな
しかも今から仕様変更するとNULLと空文字を区別してない既存アプリに影響が出てしまうという
何をいまさらの
>>84 です。
自己解決したので、ご協力いただいたみなさんへご報告を…
ツールというのは Oracle Enterprise Manager でした。
無事 11g R2 をインストールして、使用中です。
お騒がせしました、ありがとうございました。
>>146 ↑つうか、バカ!
10g R2 でした ort
ごめんなさい。
エレガントさと糞味噌一緒は紙一重。
考えたヤツは「空文字列もnullも一緒にしちゃえばいいじゃん。俺ってマジ天才」って思ったんだろうな。
一緒になってないから文句言われてるんだろ
SCANの利点がイマイチ理解できないのだが、
これを使うとどんないいことがあるのかな?
>>150 クライアント側の接続時フェイルオーバーの記述が不要になる。
くらいじゃないかな。
ポリシー管理だと、どのノードでインスタンス起動してるかも分からなくなるので、
SCAN使わないと困るはず。
152 :
NAME IS NULL:2011/09/26(月) 01:39:26.30 ID:Y+4e2Unr
Orace Text使ったことある?
>>150 ノード数を変更した時にいちいちクライアント側のTNSへの記述を
変更しなくて済む。
oracleって受験料が半端じゃないんですが元取れますか?
goldじゃないと会社から報奨金貰えません><
goldとれ
>>154 星(資格)無しのDBAだけど、39歳でアメリカで年収は$10マソぐらい。
すごくどうでもいい
会社の金でGOLD取って辞めてくやつホントに居るからな
金出すほうも渋るようになるの当然
Platinumって高過ぎだよね。
(要履修コース×2と受験料で、60万円オーバー)
欲しいけど、とても個人では受けれない。。。
資格なら国産撮ったほうがいいのでは
>>160 これくらいのカネも出せない奴は取らなくてもいいよということでしょ。
個人で受けてる人もたくさんいるよ。
手取り給料半年分やないかい…
某試験のように、円高の影響で安くなってくれんかねぇ。
165 :
NAME IS NULL:2011/09/27(火) 23:23:25.35 ID:c5O23P0o
幾らなんでもボリ過ぎでっせ
給料制で月10万の手取りかよw
168 :
NAME IS NULL:2011/09/28(水) 00:07:24.57 ID:7tD83ExK
>>159 俺その口。
奨励金は無しだったが受験料・受講料だけは出してくれた。
Platinumは取らないでくれと言われたので転職決意。
取得後一年はいたから問題ないだろう。
そして今はOracleを使わない企業へ・・・
試験も外部に委託してるからな
円高で儲かってるのは結局日本オラクルじゃないのかね
差益でOTN-Jを何とかしろ
OTN-Jの運営はなにやってるんだろな
バージョンアップするたびに寂れていくじゃねーかよ
一旦離れたアクティブなユーザを呼び戻すにはOracleにもOTN-Jにも魅力が無さ過ぎる
今も居るボランティアのモチベーションはどこからくるのか不思議だけどわずか数人の
アクティブユーザによって辛うじて支えられてるんだよな
彼/彼女等に何かプレゼントしてあげてもいいんじゃないかと思う
>>171 ボランティアばかりじゃないよ
社員が多いよ
回答者が明らかに減って外部の教えて系の方がましになってきてるんで
仕方なく古参の社員が出てきてアドバイスしてる感がある
そんなに社員居るか?
社員ならもうちょっと頑張ってレスしてやれって思うけどな
質問者のレベル以前に無反応スレ多すぎてヤバイ
何しろいつになったらSearchが日本語カテゴリは検索範囲外なのが機能するのか
WebMasterは宣伝コンテンツ以外は何も仕事してない
テーブルの列を消す方法を教えてください
Ora8.1.7
列を参照しないビューを作ればええやん
alter table drop (hoge)
178 :
175:2011/09/28(水) 23:02:40.77 ID:???
8iでもdrop column使えたのか知らなかった
ありがとー
まじめな質問だったのか
>>174 俺、日本ボラクルの元社員だけど、OTN-Jに顔出した事ない。
ここがメインだわw
OTNは日本語のサービス終了しても驚かない
OTNなんてダウンロードサイトはどうでもいいから、MOSを何とかしてほしい
こんなところにも単芝が居たのか
これからOracleを選択するのはヤヴァイですか?
将来ずっと搾取され続けちゃう?
Oracleでは悩まないでいい事がどれくらいあるかじゃね
186 :
はた:2011/09/29(木) 20:37:17.56 ID:???
oracle 以外を選ぶとあとでパフォーマンス問題が出たりしたときに「だからあの時oracleを選んどけって言ったんだ」
と事実と異なることを言うやつが出てくる。
10人はいた。そいつらはoracleはドシロウトだったのがまた笑えた。
SUNもBEAもOracle社に取り込まれてしまったし、対抗馬だったMySQLも同じく。
ここまで巨大になったらやっぱOracle社の天下?
商用ならDB2、フリーならPostgreSQLくらいしかないのかな?
でも個人的にはDB2もPostgreSQLも好きになれない。
俺もおまえが好きになれないよ
Oracleは昔IBMがやってた商売のやり方をやってるだけだしな
買い取ったSUNを育てるよりも他所に売った方が株主が喜ぶと判断したら間違いなく転売する
信者が甘やかすから、クソバグを乱発する
もしもオラクルが喧嘩売ったHPを買収したらオラクルブランドのパソコンが出てくるのか
胸が熱くなるな
インテルは全然本業から外れないな
Network Computerの夢ふたたび
F/W越えの10g DB接続についての質問です。
セキュリティの関係で必要なport以外はできるだけ閉じることが求められています。
sqlplusなどでDBに接続すると接続時とは別のportに振り替えられるのですが、この時に使用されるportの範囲が記載されている資料はありますでしょうか。
なお、レジストリ書き換えによる単一port利用はしない予定です。
>>194 O/Sによって1024より上のポートがランダムに割り当てられる仕様だ。
つまり1024より全てのポートを開けてくださいってこった。
F/Wの意味無いね(笑)
>>195 なんと…残念です。
単一port仕様にするしかないのかー。
>>196 Oracle Net に対応したF/Wだと、動的に対応してくれる製品もあるみたいだけど、
それは望めないの?
>>197 一番外は対応してる(Cisco coreルータ)んですけど途中のがまだ未対応なんです。
最悪コネクション専用のサーバ立てて中継する手もあるみたいなので色々検討してみます。
high port については SYN だけのパケットを抑止すればいいのでは?
統計情報ってCommit前でも取得可能でしょうか?
つまり、Aのテーブルに100万件ほど挿入した後、COMMITせずに統計情報を取って
から、Aのテーブルを参照しつつBのテーブルにレコードを挿入、と言うことは可
能(というか意味がある)でしょうか?
>>200 INSERTしたセッションで統計情報を取ると、
暗黙のCOMMITが走るのでそもそも希望した状態にはならない。
INSERTしたセッションと別のセッションで統計情報を取ると、
レコード数は反映されていないが、HWMは反映されているという
微妙な状態になる。こういうことしない方がいいと思う
>>200 まずどうしてそのようなことがしたいのかがわからない。
理由によってはもっといい方法があるかもしれないよ?
# まあパフォーマンスが悪いからなんとかしたいってことなんだろうけどね…
コミットすると消える一時表の統計情報でも取りたいのかね
204 :
200:2011/10/02(日) 14:01:30.95 ID:???
>>201 ありがとうございます。出来ないと言う方向で客に話を持っていきます。
>>203 一時表ではありません
統計情報が取れてなくてもそこそこ問題ない結果を出す、というわけでは決してなく、
統計情報がなければ容易にTABLE ACCESS FULLが走ってしまう、というのは
何とかならんかな、と思うな
統計情報がなければ、もしくは例えばレコード数の変化が大きかったら
オンデマンドに再取得してくれる、みたいな機能はないものかな
各バージョン
・Oracle 11g R2(11.2)
・Windows Server 2008 Standard Edition(全サーバー)
Oracle Enterprise Manager 11gからバックアップ設定を行っているのですが、
[ディスク・バックアップの場所]に他サーバーのディレクトリは指定可能でしょうか?
ググって調べてはいますが、現在スクリプトエラーが発生して解消できずにいます。
--- スクリプトエラー ----------------
RMAN-03009: backupコマンド(oem_disk_backupチャネル上)が10/03/2011 15:00:03で失敗しました
ORA-19504: ファイル"<他サーバーのディレクトリ>"の作成に失敗しました。
ORA-27040: ファイルの作成エラー、ファイルを作成できません
OSD-04002: ?t?@?C????[?v??????????S-Error: (OS 5) ?A?N?Z?X??????????????B
-------------------------------------
<他サーバーのディレクトリ>は他サーバーのCドライブ直下にフォルダを作成し、
このフォルダを共有しています。
以下、全て同じユーザー&パスワードを設定しています、権限は括弧内のとおりです。
・DBサーバーのWindowsユーザー(権限:Administrators、ora_dba)
・Oracleユーザー(権限:DBA)
・他サーバーの共有フォルダのアクセス許可(権限:Administrators、ora_dba)
・他サーバーの共有フォルダのセキュリティ(権限:Administrators、ora_dba)
試しにDBサーバーのエクスプローラで"\\<他サーバー名>\<共有フォルダ名>"と入力すると
中身は表示され、そこにテキストファイル、フォルダの作成または削除ができました。
[ディスク・バックアップの場所]に自サーバーのディレクトリを指定するとバックアップできました。
なので、回避策としては自サーバーにバックアップ後、ファイルをコピーすればいいのですが、
気になったのでもしご存知の方がいらっしゃったらご教授ください、よろしくお願いします。(長文すみません)
Oracleって直接Windows共有使えたっけ?
共有フォルダにドライブを割り当てると、その辺のところをうまく回避してくれるかもしれん。
>>207 どうやらバックアップ先にもリスナーをコンフィグする必要があるらしい。
あとバックアップ先のディレクトリ指定はネットワークドライブ名ではなく、
「\\サーバー名\対象ディレクトリ」といったUNCで指定しないといけない
らしい。
Linuxにインストールしたけど動かないんだけどどうすればいいん?
まず服を脱いできれいにたたみます
次にフォーゼの変身を3回連続で行います
>>210 Linuxと言っても一体どのディストリでバージョンは?
あとOracleのバージョンは?
>>210 何が、どうなって、どのように動かないの?
エラーとか出てる?
「けど」を2回続けるのは釣り
12c
みんなはどう読む?
やっぱ、トゥウェルブ・シーか?
なんか言いにくいな。
俺の周りでの話
10gのときは「てんじー」と「じゅうじー」で半々くらいに分かれてた
11gになったら単に「じゅういち」とか「いれぶん」で「じー」を付ける人は滅多に居なかった
12cはおそらく「じゅうに」が主流になると思う
8と8iで違うというような状況でもなけりゃgとかcとか要らないと思う
アメリカではそのまんまだな。
9i => ナインアイ
10g => テンジー
11g => イレブンジー
だから12cもトゥエルブシーだろうな。
すごく普通で感動的
抽出元のデータにロックをかけるのと
同時に、 別のテーブルにデータをコピーするとことってできませんか?
INSRET INTO テーブル2
SELECT 〜 FROM テーブル1 〜 FOR UPDATE
みたいなことするとエラーで怒られるんだが。
テーブルロックしてからselectするのはダメなのか
>>221 INSRET が文法エラーということはないのか。
日本語もあちこちおかしいみたいだな。半島人か?
少しはまともに書いてくれると調べて答えてみようとも思うのだが。
アメリカで仕事してると日本語読解力がかなり落ちるみたいだな
225 :
221:2011/10/05(水) 15:23:38.42 ID:???
>>223 『と』がひとつ多かったミスタイプすまん
半島には縁もゆかりも無いよ。
もちろんFOR UPDATE付けなければエラーにはなりません。
INSERT対象のテーブルではなくSELECT対象のテーブルにロックかけたいだけなんだけど何コレ?
まあ(日本語に限らず)、多少のスラングを脳内変換できない人に限って
差別的外人扱いするよね
228 :
207:2011/10/05(水) 17:47:12.08 ID:???
>>208-209 遅くなりすみません、そしてありがとうございました。
バックアップ先にもリスナーが必要なんですか、なるほど試してみます!
なんでロックしたいのかがよくわかんないんだよね。
トランザクションをちゃんと勉強した方がいいんじゃないか。
11g R1からR2にするときにトラブった経験ある人います?
>>231 R2へうp後即パッチあてないとデータファイル壊しまくるという素敵仕様だ
マジですか…
234 :
221:2011/10/05(水) 21:05:08.67 ID:???
あまり日本語が不自由な人の相手はしたくないんだけれども
MERGE を使うのではダメなのかな。
typoが多い人はどうせ普段も周りとろくにコミュニケーションが取れてないし
書いてる設計書やプログラムも自分でチェックしないもんだから
内容も動きもめちゃくちゃだし、一緒に仕事はしたくないタイプだね。
どうせ適当にgoogleで検索して見つかったのをコピペして喜んでるくらいが
関の山だろう。
238 :
221:2011/10/05(水) 21:48:20.51 ID:???
>>237 チョンは半島に帰れ。お前の方がうざい。
どうしてこんなに荒れてるの?
荒らしたがるひとが居るから
>>231 11.2.0.2まで上げないと悲惨な目にあうよ
自分がまともな回答できない質問に対して、
質問内容を捻じ曲げてまともに答えなかったり、言葉じりを攻撃したりする奴らってなんなの?
知ってるヤツに聞きたい訳で、現時点で調べなきゃ分からないレベルのヤツに質問してるわけじゃねーんだよ?
いいから落ち着いて刺身にたんぽぽを乗せる作業に戻るんだ
>>243 酔っ払いを相手におまえなんで酔っ払ってんの?って言っても無駄なんですよ
11gR1とR2とじゃ特にRAC方面で、
hasとかSCANとか、色々と仕組が変わってるよね。
初めて知ったとき面食らってサッパリわからなかった。
ようやく最近になって、シングル構成とRAC構成での
hasとcrs配下のリソースについて、違いを理解し始めた。
11.2.0.2の比較的新しいバージョンで、接続に時間がかかる現象に巻き込まれて、
サポートに助けを求めたら、
「名前解決に時間を費やしてしまう過去事例に近いから、このパッチをあてろ」と言われ、
苦労して顧客や周辺システムに停止調整してパッチあてたが改善されず、
今度は、
「サーバとリスナーとクライアントのNETトレースを取得して送れ」と言われ、
言われたとおりにすると、今度は
「その時のOSリソースがわかる情報(sarとか)も取得して送れ」と言われ、
特に目立った問題がないとわかると今度は
「リスナーのシステムコール状態がわかる情報(straceとか)も取得して送れ」と言われ、
言うとおりにしたら今度は、
「こえはstraceを取得したことによるオーバーヘッドで遅延が発生したんでしょう」
とか本末転倒なことを言われ、結局なんにも解決に至らなかったのだが、
これはOacle社が悪いの?サポートセンターが悪いの?
それとも、不幸の星の元に生まれた負け組な俺が悪いのだろうか?
そうか、それなら納得がいくなw
…いや、真面目な話。
いったん接続がされると、それ以降のSQLはサクサク動くのだが、
接続までに異様に時間が掛かる現象に遭遇した人、いない?
11gになってから、その辺の接続に関する処理が弱くなったと感じたのは俺だけだろうか。
>>247 それってOracleの接続だけ限った話なの?
sshとかは普通にサクサク繋がるの?
途中のF/Wやルータが腐って悪さしていたりとかって事はない?
ARPのキャッシュとか見てみた?
>>238 ロックができるかどうかじゃなくてトランザクションで考えれ。
oracle 接続 遅い
でぐぐるといいよ
>>248 毎回遅いわけではなくて、早い時は全然気にならないくらいんだけど、
長い時は最長40秒ほどかかることがある。
>>249 そう、Oracleに限った話。
最初はアプリケーションサーバからのJDBC接続だったので、
仰る通り、途中のネットワーク経路も疑ったのだが、
切り分けていくうちに、そのOracleが稼働しているサーバ上でsqlplusで試してみたが同じ。
この時、ローカル接続なら遅延はなかった。
でもリスナー経由だと遅延が起こった。
ということは、サーバプロセスをforkする過程(OSレベル?)で何か問題があるんかな…。
>>251 了解。
探してみる。
ネット経由でも専用サーバー接続なんだよな
forkが問題なら
ローカル接続でもサーバープロセスは作られるから同じかと
>>252 ループバックアドレスは/etc/hostsにちゃんと設定されてるんだよね?
ipv4とipv6のエントリでコンフリクトとかしていない?
>>253 ローカル接続の場合、
クライアントが専用サーバプロセスを生成するんだけど、
リスナー経由の場合はリスナーが専用サーバプロセス生成するらしい。
なので、サーバプロセスが出来上がるまでの過程には若干違いがある模様。
(例えばシェルのリソース制限 ulimit 等。。。)
ちなみに共有サーバ接続にしてみたら、不思議と遅延が消えた。
こうなるとネットワーク方面ではなく、やっぱfork絡みなのかねぇ。。。
>>254 ループバックアドレスはちゃんと/etc/hostsに設定している。
あと…ごめん、「ipv4とipv6のエントリでコンフリクト」というのは
具体的にどういったケース?(^^;
円高で値下げ来るかと思ったら真逆で噴飯
この辺がAppleとOracleの違いだな。
もはやプラチナの市場価値なんてないよ
(20代は除く)
ジョブス氏が逝ってしまったんでApple乗っ取りオペレーション発動なんだろ?
そのための原資を集めないといかんから、まず搾りやすいところからということかね
もう誰も受けなくなった → 値上げ
OracleにとってAppleって価値あるの?
RDBMSとMacってまったく縁がなさそうな感じ
モバイルとクラウドというキーワードを思いつかないのかね
敵の敵は友達
昔はMS、今はGoogle
モバイル側はWebブラウザさえあれば何でもよさそうだし
クラウド側はあえてMacを選ぶ理由がよくわからない
クラウド側にMacという発想はなかったな
天才じゃね?
Google の BigTable とかいうRDBMSはOracleのそれを凌ぐのかね?
漠然とした感覚だが、個人的には明らかに不愉快に感じる。
Oracle がんがれ!
>>261 いや、誰も受けなくなって人気が下がり始めた時こそ、
値下げなりなんなりの営業努力が必要なのでは?
上げても受けざるをえないやつがどれだけいるかだろう。
たばこと同じ。
>>255 ごめん、コンフリクトという表現は正しく無かったな。
ループバックだが、以下のエントリが設定されているかな?
127.0.0.1 localhost.localdomain localhost
たまにループバックにホスト名を指定していると動作がおかしくなったり
する場合があったんで、確認までなんだが。
>>247 11gR1で,DBサーバーにDNS参照の設定がしてあり,DNSサーバーが暴走したとき,DB接続が遅くなりました.
このときの現象は次の通りでした.
・SQL*Net経由のOracleDB接続が遅い.
・ローカル(BEQ)接続では,ふつうに早く接続できる.
DNSサーバーの再起動で障害回復しましたが,DBサーバーでDNS参照しないよう,変更しました.
>>270 >たまにループバックにホスト名を指定していると動作がおかしくなったり
>する場合があったんで、確認までなんだが。
なるほど。
確認してみたが、ちゃんと
127.0.0.1 localhost.localdomain localhost
は記載されていました。
>>271 >SQLNET.AUTHENTICATION_SERVICES
これは知らなかった。
ただ今回のはOSプラットフォームはLinuxなんだよねぇ(^^;
sqlnet.oraは知らないことがいっぱい。
便利な機能がかなりありそう。
>あと、俺の過去経験では、
>ネットワークインターフェースカード(NIC)の
>ドライバの不具合、というのがあった。
>その時は代替機を用意して原因が判明した。
あー、それは想像しただけで大変だぁ(汗)
でもそれだと、Oracle以外の通信も遅くならなかった?
>>272 >DNS
なるほど、名前解決絡みの原因もよく聞くなぁ。
ありがとう、参考にさせて頂きます。
あの糞トロいサポートサイトが、オラクル標準のパフォーマンスなのか?
declare
begin
select * from dual;
end;
これを実行するとエラーが発生しますが、
selectでデータを表示しようとしているからエラーが出るのですか?
その通り。プロシージャの中ではINTOかカーソル位にしか出力できない
いくらなんでもそれは釣りだろ
278 :
275:2011/10/09(日) 21:56:33.06 ID:???
>>276 あぁー、やっぱりそうなんですか
ありがとうございます
それMSSQLしか知らないと一番最初にハマる。
280 :
275:2011/10/09(日) 23:12:58.23 ID:???
>>279 その通り、sql serverしか知らないんですね
ついでに質問なんですが、sql serverだとこんな書き方ができます
declare @v varchar(100)
set @v = 'hellow'
select @v ←@vにセットした値を表示している
この技が便利なので、そっくりそのままoracleでやってみたのですが
v varchar(100) := 'hellow'; ←ここで、怒られる oracleはdeclare〜beginの間に書かないとダメなのか?
select v from dual; ←変数vじゃなくて、dual表のv列を表示しているのですか?
oracleはselect系がめちゃくちゃ楽な気がするのですが、
まだまだ勉強不足なものでした
つーかストアドみたいな時代遅れなもの使うべきじゃない
今ナウいのは?
・変数はdeclare〜beginの間に書く。その間なら初期化も可能。
・"出力"はできない。結果を使いたければ別のテーブルにでもはき出してそこから得る
(一応デバッグ用にDBMS_OUTPUT.PUT_LINEみたいなのは有るけど)
・select v from dualの指定の仕方で一応は間違っていない
使えないのは変数が正しく定義されてないのと、出力先が指定されてないから。
284 :
275:2011/10/10(月) 00:00:30.28 ID:???
>>281 ストアドが時代遅れなのか、それとも現役なのかはさておき
私もなるべくストアドは使いたくないですね
もう、ストアドはごっちゃごちゃで何が何だかの状態になりやすい気がする
かと言ってC/S(2層)形のソフトは、可読性を無視してSQL文をコードに書いている
ちゃんと、MVCとかO/Rマッパとか検討しようよーと切に思います
>>283 ありがとうございます
>DBMS_OUTPUT.PUT_LINE
これ使ってみたのですが、SQL Developerにうまく表示されないので苦戦してます
SQL DeveloperでDBMS_OUTPUTを表示するにはDBMS出力を有効にする必要がある
[表示]-[DBMS出力] → +をクリックして接続先を追加
ごちゃごちゃになる理由は
ストアドのせいでは無いような気もするけどね。
言語に合わせてスマートに書ける方法ちゃんと考えてから実装しなきゃいけないのは、どれも同じ。
287 :
275:2011/10/10(月) 00:38:49.34 ID:???
>>285 おかげさまで、動きました
ありがとうございます
>>286 その通りです
10年も前のコード、それも仕様書なしのプログラムを書いていると気がおかしくなりそうです
早くSQL Server捨てて、Oracleやりたい
ちょっとだけマジ質
>281
ストアドが時代遅れなら変わりに何使うの?
ストアドが時代遅れといってDOSでバッチ処理書いていたりするかもな
DOSでバッチ処理書くことは普通にあるがストアドと何か関係あるの?
でもストアドって積極的に利用するものではないよね
外部結合に(+)を使うようなものだし。
SQLで一括処理できることを、わざわざ一件づつ処理するようなPLSQLは時代遅れってことでしょ?
今ならRDBMSに不可欠だった賢いオプティマイザと十分なメモリがあるんだからさ。
>>291-292 うーん、やっぱり意味が分からない。
別にストアドでも一括処理は出来るよね?もしかしてストアドはカーソル処理
しか出来ないと思ってる子かな?
カーソル処理しないならストアドにする理由が無いって言ってるんだよ。
295 :
NAME IS NULL:2011/10/10(月) 16:45:22.57 ID:i07RN2J/
PL/SQL生産性悪くない?デバッグしにくいし。
使用するメリットがわからん。パフォーマンスかなあ。
今はDBを変えることも多いからDBにビジネスロジックを
組み込んじゃだめってことだよ。
Oracleから別のDBMSに変更するってことはほぼ無いだろうな
簡単に置き換えできるようなしょぼいシステムなら別だけど
うちでは事例一個だけだな。
Enterprise Editionはボッタクリだが
Standard Edition Oneが安いので他に移る理由があまりない
SEでRACが組めちゃうから
EEのボッタクリ指数はかなり高いよね
実際DB変わるなんてほとんど無いよ。
むしろ言語側のが変わる。
>>295 何と比べてデバッグし辛いのか比較対象が書いてないから分からない。
少なくともデバッグし辛いと思ったことは無い。
あと、メンテが超ラク。
生産性はJavaなんかより全然上だと思うがね。
ちなみにバッチ処理限定の話ね。画面系だとまた違うと思うけど。
レス違いだったらすみません。
OracleDBをパブリッククラウド上で稼働させている企業とかっているのでしょうか?SEONEだとしてもかなり高額なライセンスになりそうな気がするのですが。
ありがとうございます。
そうなんですね。
やるとしたら物理CPU分買わないといけないと思いますけど、クラウドなのに物理CPUの構成気にしないといけないのもなんですし。
iaas型のクラウドサービス借りてOracle動かすケースは費用面で難しいんですかね。。
SE Oneってライセンスとして物理CPU数に制限があるだろ
それが物理マシンだろうが、クラウド上だろうが変わらんだろ
なんか勘違いしてんじゃね
制限があるのは知ってます。
iaas型のクラウドサービス契約時に物理CPUを教えてもらってSEONEが乗ると判断したうえで物理CPU分購入したとしても、そのクラウド基盤がリプレースとか
でもっとCPU搭載数の多いサーバになってしまったら知らないうちにライセンス違反
になってしまうってことがありえるんだなと思いまして。
Oracleのライセンスポリシーみると仮想環境だろうが物理CPU分購入しないといけないみたいなので、iaas型のクラウドサービス利用するならnameduserライセンスしかないんですかね。。
oracleにはfunction/procedureの2つのがあるようですが、
戻り値が返せる返せないの他に違いがありますか?
例えていうならば、vbのfunction/subの関係なのでしょうか
ありがとうございます!
でもOracleVM以外の場合はnameduserライセンス買うか物理CPU教えてもらってその分購入するしかなさそうですね。
かなり割高そうですが。。。
>>309 こいつ、何言っても割高割高としか返せないのかよ
クラウドはサービスとして選択できる点もメリットだろ
割高(笑)にならないクラウドを選べばいい
日本国内で、安さが売りのクラウドで儲かってるとこなんて皆無だよ。
少なくとも設備投資が回収できてるとこなんて。
理由は日本の農業がダメなのと似てる。
おっしゃる通りです。サービス型のメリットは色々あると思いますので都度選択すればいいと思います。
皆さんクラウドで有償のDB使う場合どうするのかと思い質問させていただきました。回答ありがとうございました。
クラウドでOracleDatabaseが提供されたら、
俺みたいなOracle構築屋や運用屋は仕事減ってしまうのかな?
嫌だな、それ。
問題起きてオラクルのバグが原因かどうかの切り分けできるのか?
>>309 「でもOracleVM以外の場合は」ってどれを言ってるの?
結局使いたくない理由を探してるだけなんだろうね。アホか。
>>307 返り値を返せる/返せない以外の違いは無い。
procedureの中から使ってout変数経由で結果を取る、とかならどっち使っても
同じ。sqlの中に直接書きたいならfunctionしかないけど↓
select a, b, foo(a,b) from dual;
よく知らんけどVMwareとかが多いんじゃないの?
まあでもたしかにOSまでサービス提供されるクラウドでOracle入れようと思ったら見積もりバカ高かったな。
318 :
307:2011/10/10(月) 23:10:07.45 ID:???
>>316 勉強になりました
ありがとうございます
>>314 サポートに回答期限切って投げつつ、代理店の営業に直接電話してガンガン絞って
進捗を報告させろ
営業が何人死んだって、客のシステムはちっとも治らんということを肝に銘じよ
治→直
プレッシャーがきついんでサポート料金値上げしますね(^▽^)
322 :
はた:2011/10/11(火) 07:54:49.87 ID:???
Oracleはあまり使われていない機能を使うとバグを踏む。
SQLでデータを取り出す、という機能ですらバグを踏める
そこにバグのないDBMSとか無いだろ。
物理マシンにCPUが何個あっても仮想マシンでCPU数設定できるけど
ライセンスはどっちでカウントされるか知ってるひと居る?
326 :
325:2011/10/14(金) 08:55:22.10 ID:???
あ、仮想でOracle動かす場合の話
ちょっと前にここでRAC構築の相談をさせていただいたデビ男です。
ついに契約打ち切りとなりました。
最終的にはプロジェクト関係者の集まる中で公開処刑されました。
内容としては定例会の場で突然、私に対してORACLE関連のクイズを複数出されました。クイズを出したのは他社ベンダのデビオ。
きっとお客さんが根回しして連れてきたんでしょう。。。
すべてのクイズで不正解を告げられ終わりました
>>327 打ち切り自体は普通の結末だわ
それ相応のスキルがないのに居座ろうとしたおまえもおまえの会社もおかしいし
その客もGOLD所持について証明書の提示を求めていない時点でマヌケだし追い出し方が陰湿
プロジェクトに影響出てるとしたら損害の責任を追及されてもおかしくないけどな
次がんばれ
>>325 物理CPUだよ
例えばハードに32個物理CPUが乗ってて、Oracleの仮想環境が3つ動くのであれば、
実際に仮想に割り当てるCPU数とは関係なく
32×3=96CPUライセンスが必要。
非現実的なので、普通に仮想でOracle使わない。
>>329 情報ありがとう
仮想の全てでOracle動かすわけじゃないんだけど割り当てるCPUを減らせばライセンス節約できるのかなと
思ったんだけど無理なんだなあ
素直にユニット分ける方をメインに提案するかな
>>330 「Oracleの仮想環境が3つ動くのであれば」ということでそ
>>331 物理CPU課金だけで、その上にいくつ仮想マシン動かしてもライセンス料は変わらないんじゃない?って意味でした。
>>332 その流れだと例えばデータセンターのようなサイトで顧客ごとに仮想を提供する場合
その仮想のユーザごとにOracle使うか使わないか分かれたら誰がライセンス料金を
払うことになるんだろうね
>>333 そりゃOracleを使うユーザーと使わないユーザーは最初から同居しないよう
サービスを提供するだろうし、使うユーザー向けにはたぶんインフラとして
Oracleも込みで提供するだろ。
顧客側としても、Oracleを使っておけば、将来においてパフォーマンストラブルが起こっても
「ORACLEを使ってもパフォーマンストラブルはあるんです!!!」って言い訳できるからねえ。
SQLSEVERとかオープンソース系を使ったら、ここぞとばかりに「ORACLEにしとけって言っただろ」(そんなことは聞いていない)
ってやつらが社内から現れる。
>>328 このスレに顧客側の人間またはベンダの人間がいるんじゃね?
Oracle村は狭い。まるで過疎地域の限界集落なみだ。
原子力村なんかモナコ公国なみに人間がいるのに(笑)
>>327 理由はどうであれ公開処刑は陰湿だな。
まあ、折角Oracleに触れるチャンスがあったんだから、この機会に
ちょっとずつ覚えてみたらどうだ?
>>334 そのページの近くまでは見たんだけど何故か肝心なページに気づかんかった
いちおOracleDirectに問い合わせ投げたんだけど回答は週明けかな
多分そのURL紹介されて終わりな気がするけど週末に草案を書くにはこれで根拠は十分だわ
助かったありがとう
340 :
NAME IS NULL:2011/10/15(土) 02:02:15.68 ID:x43nnMJs
フジテレビデモ
花王デモ
要チェック
スレチ
Oracle 10g R2 for SolarisのEE版での質問です。
あるテーブルをパーティションで管理していて、
13カ月保持で14カ月目になったものからパーティション
Dropで削除しています。パーティションのキーは作成日で
一カ月毎に仕切られています。
このたび、保持期間を6カ月に短縮することになって、
一度に8カ月分のパーティションDropをすることになりました。
パーティションで管理していた場合、Drop後の断片化を
解消するためにSHRINKなどは必要ないと思っているのですが、
正しいでしょうか。
それと、1パーティションに800万件くらいのレコードがあり、
追加・更新・削除も頻繁に行われています。保持している6カ月
分のパーティションに対して断片化解消はSHRINKで可能でしょうか。
テーブル内を全件アクセスすることもあり、パーティション内の
断片化を確認したいのですが、パーティション内の断片化の状況が
DBA_EXTENTSでは確認できずに困っています。
何かヒントがあれば、教えてください。よろしくお願いします。
ローカル管理なら不要なんじゃないの?
どうしてもしたいなら、エクスポート、DROP、インポートでいいような気がする。
DBA_FREESPACEで見れたような
>>342 断片化の状況はDBA_EXTENTSからFILE_ID、BLOCK_ID,、BLOCKSを取得して分布を調べれば分かる
そういうのを図にしてくれるツールもあるから面倒なら既存のツールを使ったらどうかな
>>344 答えていないお前も黙ってろ
shrinkは断片化の解消にはならないよ
345の通り、DBA_EXTENTSで確認がいいね
343も空き領域の断片化を答えただけで、
ローカル管理なら性能に影響ないなら不要ってことは
合っている
断片化と言ってもいろんなレベルの話があるからな〜
348 :
342:2011/10/15(土) 17:01:03.45 ID:???
皆様、いろいろアドバイスありがとうございます。
DBA_EXTENTSは確認してみたのですが、非パーティションテーブルでは、
分布状況を確認できるものの、パーティションテーブル内のBLOCK_IDなど情報が
NULLになってしまい、確認できませんでした。
非パーティションテーブルに関してはSHRINKをして、HWMを下げようと
思っています。パーティションテーブルに関してはそれが必要かどうか
というところがよくわからず、質問させてもらいました。
稼働環境であり、作業時間も短く、あまりリスクは冒せないので、
パーティションテーブルに関しては、保持期間を過ぎたものの
DROPパーティションになってしまうと思うのですが、
EXTENTの状況は確認したいと思っています。
>>348 これ↓で見てもBLOCK_IDとかNULLになる?
select SEGMENT_NAME, PARTITION_NAME, FILE_ID, BLOCK_ID, BLOCKS
from dba_extents where owner = 'ユーザ名' and PARTITION_NAME is not null;
TABLEを日付でレンジパーティション化してるんだよね?
>>346 > shrinkは断片化の解消にはならないよ
これって行移行したブロックが後方のEXTENTにあるとそのブロックがそこに居座ることがあるってやつだっけ?
行移行してなきゃSHRINKも効果あるんだよね?
それ以外の要因もある?
つか、諸々の状況によるんだろうけど800万件のSHRINKってどれくらい時間かかるのかな…
351 :
342:2011/10/16(日) 10:47:08.29 ID:???
>>349 アドバイスありがとうございます。
条件をPARTITION_NAMEでなくて、TABLE_NAEMにしていたのが
原因かもしれません。明日会社でやってみます。
ありがとうございました。
小規模事務所でXPのPC上のオラクルを使ってます。
他人に作ってもらったもので自分の本来業務とは関係ないのでオラクルのことはほとんど知りません。
DBはACCESSとMySQLが少しわかる程度。
オラクルの入ったパーティションをデフラグしてたらバックアップアプリの開始時間と重なったかなんかで
いろいろあってシステムがこけて打つ手なく電源スイッチ断で落として再起動。
なんか変な気がしてイベント ビューアーを見たら「NTFSファイルシステムが壊れています…」
ドライブにはアクセスできたので関連サービスを全て停止して別ドライブにオラクル関係のフォルダをコピー。
コピー自体は何のエラーもなくうまくいきました。
そしてドライブレターを入れ替えてみたところ成功?イベントビューアーにも変な記録はありません。
事故が起こったのは担当が作業を終えてから2時間後くらい。
なにぶん担当がいなくて検証できませんが問題ありそうですか?
動かないと明日の朝、お姐さんがたにお仕置きされそうです。
つまりファイルシステムが壊れたらしい。ファイルのコピー等は出来る。オラクルはどうなってるかわからない。
普通のアプリデータなら何の問題もないような状況です。
でもこれシステムが落ちて強制終了したのと同じようなことかな。
>>353 ありがとうございます。まずはひと安心…かな
明日の朝さえしのげればいろいろ勉強してみます。
結局Oracleが使える状態かどうかという確認をしてないのに安心していいのかと思うが
356 :
352:2011/10/17(月) 22:59:07.99 ID:???
どうやら無事動きました。
昨日chkdskしてもダメだったのに今日同じことやったら元のディスクも直った。
ありがとう。
Oracleではユーザ=スキーマと考えていいよと書いてありますが、ユーザとスキーマの違いを教えてください
ユーザ:データベースを操作するための権限をもつ人のこと
スキーマ:javaとかでいうパッケージみたいなもので、表やビューの所有者
ユーザは「表やビュー」の所有者にはなれない、スキーマはデータベースを操作することができないってことでOK?
>>357 DBMSによっては
ユーザ…権限を持つ人
スキーマ…テーブルやビューのまとまり
のように管理しているものがある
そういったDBMSでは、スキーマに対してテーブル類を管理者が作成し、そのスキーマへの
アクセス権をユーザに与える、という使い方をしたりする
なので、あるスキーマへのアクセス権を複数のユーザに与えることでテーブルを共有したり、
複数のスキーマを一人のユーザに与えたりすることもできたりする
Oracleではそうはせず、ユーザとスキーマを1:1で対応付けているということ
ユーザを作成すると、自動的にユーザ名と同名の空スキーマが作成され、そのスキーマへの
アクセス権が付与される、という感じか
スキーマとユーザを分離できると、便利な局面はあるのだけどね
でもGRANTなんかを使えば、面倒ながら同じことは実現できるので、分離してなくても
不都合はなかろう、ということではないかな
CURRENT_SCHEMA って概念があるよ
CURRENT_SCHEMAはそのセッションで使用するオブジェクトのスキーマ名を省略したときに
割り当てる値という役割以外何もないのでは?
指摘したかったのは1:1でも変更できるよって事
そりゃ概念じゃねえだろw
概念ってconceptだよな
alter session set current_schema は function だけど
current_schemaで現在スキーマを変更するってのは設計のconceptじゃないのか?
中身のない会話
検索した結果をわざわざ貼る必要はないんじゃないの
>>358 インスタンスとデータベースも1:1(RAC除く)だしな。
368 :
はた:2011/10/20(木) 12:48:42.55 ID:???
時々、一つのデータベースに複数のインスタンスを入れようと言い出すひとがいるが大丈夫なのかな?
鯖が壊れたら全インスタンスが道連れか
ま、いいんじゃね?
俺がそうするっつってるわけじゃないしな
DBAって大変そうなイメージを持たれがちだけど実は楽だよな
たしかに作業量はプログラマほど多くない
問題発生時の切り分けに関する知識は結構な範囲を要するけどな。
375 :
357:2011/10/20(木) 22:59:07.15 ID:???
>>358 レスありがとうございます
スキーマ:テーブル・ビューなどの入れ物
ってことはわかりました
ビュー・表などのオブジェクトはユーザ or スキーマのどちらが所有しているのですか(DBMS依存?)?
正直、パッケージ/ロール/Grant/ユーザ/スキーマの関係がいまいちわからないです
どれも似たようなことをしているじゃないですか
Unixでファイルを見るために、cat/view/more/lessなど色々方法があるのと一緒なのかなーなんて思い始めてきました
パフォーマンスの問題は必ずDBのせいにされる
データ処理の何倍もの時間がアプリの処理にかかっていたとしても
そして、それを定量的に証明させられるDBA
不遇だ
>>375 既出だがOracleではスキーマとユーザーは1対1だから、
基本的にユーザー=スキーマと考えて差し支えは無い。
だからビューや表のオブジェクトはスキーマーAが持って
いるということもあるし、ユーザーAが持っているという
こともある。
この場合、スキーマとユーザーに違いは無い。
>>376 そうなんだよな。
だから必然的にO/Sやネットワーク周りに関する知識も必須になる。
全体的に考えないと、DBに問題ないということを証明できないからな。
DBAが楽というのは自分が苦労してようやく得たものか
前任者の苦労の恩恵や組織情報力を背景にしたものかに大別されるわな
あとは言うまでもないよな
問題を切り分ける上で、AWRを使いたいことがよくあるのだが、
名目上、EE+なんたらpackが必要ってことになってるじゃない?
あれ、太っ腹にSE1から使ってもいいことにしてくれないかねぇ?
ASHも無しで調査なんて、正直できないのだが…。
だから安いんじゃね?
性能トラブル時には
みんなこっそり使っているはず
てかサポートが、AWRレポート取って送れって言ってくるしな
Oracleは取っ付きにくいから
社内参入者が少なくて
自分のペースで仕事ができるぜ
>>384 だな
実際技術的な話しに持ち込むとみんな分かった不利して会話終了ってパターンが多い。(ただし上層部は除く)
データベースってこの先食っていけるの?
安泰なら必死で勉強するんだが。。
この業界で安泰なものなんてあるわけないだろ
別に必死で勉強しなくても使える
389 :
NAME IS NULL:2011/10/22(土) 01:23:10.47 ID:c2wffDJs
>>388 使うのなんて誰でもできるだろ
食っていけるかって聞いてるんだよksg
391 :
NAME IS NULL:2011/10/22(土) 01:24:18.48 ID:c2wffDJs
>>387 まぁそうだけどDBはなくならないだろ。
DBエンジニアって給与も高いイメージがある
だれかOracleとMysqlの違いをハンターハンターで説明してくれないか?
猛者は追加で以下も現してみてくれ
Sybase
DB2
Teradata
HANA
11gR2は2.2GBのzipファイルのくせに、11.2.0.3はzipファイル7つにサイズ5GBとか、
一体何が入ってるんだ?
と思ったら、サーバなら1/7と2/7だけでいいんだな
だがそれでもクソでけえ
と思ったら、パッチだけが入ってるんじゃなくて、フルインストールできるんだな
まあいいけど、面倒くせぇ
395 :
NAME IS NULL:2011/10/23(日) 09:58:02.67 ID:LGiX7GsS
ニートの場合どうやって
サインアップするの?
その話のオチは何なんだ
>>395 ORACLE社ではニートに使われるなんて想定はしていない
>>394 わざわざ11.2.0.1からアップグレードするほうが面倒
399 :
NAME IS NULL:2011/10/23(日) 11:11:13.32 ID:LGiX7GsS
>>397 ナ ゝ ナ ゝ / 十_" ー;=‐ |! |!
cト cト /^、_ノ | 、.__ つ (.__  ̄ ̄ ̄ ̄ ・ ・
ミ::::;/  ゙̄`ー-.、 u ;,,; j ヾk'! ' l / 'レ ^ヽヘ\ ,r゙ゞ゙-"、ノ / l! !ヽ 、、 |
ミ/ J ゙`ー、 " ;, ;;; ,;; ゙ u ヾi ,,./ , ,、ヾヾ | '-- 、..,,ヽ j ! | Nヾ|
'" _,,.. -─ゝ.、 ;, " ;; _,,..._ゞイ__//〃 i.! ilヾゞヽ | 、 .r. ヾ-、;;ノ,.:-一'"i
j / ,.- 、 ヾヽ、 ;; ;; _,-< //_,,\' "' !| :l ゙i !_,,ヽ.l `ー─-- エィ' (. 7 /
: ' ・丿  ̄≠Ξイ´,-、 ヽ /イ´ r. `ー-'メ ,.-´、 i u ヾ``ー' イ____
\_ _,,......:: ´゙i、 `¨ / i ヽ.__,,... ' u ゙l´.i・j.冫,イ゙l / ``-、..- ノ :u l ,− ,−\ / ̄ ̄ ̄ ̄\
u  ̄ ̄ 彡" 、ヾ ̄``ミ::.l u j i、`ー' .i / /、._ `'y /, | ・|・ | ヽ_____ヽ
u `ヽ ゙:l ,.::- 、,, ,. ノ ゙ u ! /_  ̄ ー/ u / `−●-' \ヽ , ─ 、 , ─ |
_,,..,,_ ,.ィ、 / | /__ ``- 、_ l l ``ーt、_ / / ── | ──ヽ| ・|・ |
゙ u ,./´ " ``- 、_J r'´ u 丿 .l,... `ー一''/ ノ ト 、,,_____ ゙/ /.. ── | ── .|`─ 'っ - ´|
./__ ー7 /、 l '゙ ヽ/ ,. '" \`ー--- ",.::く、 | ── | ── |.____) /
/;;;''"  ̄ ̄ ───/ ゙ ,::' \ヾニ==='"/ `- 、 ゙ー┬ '´ / \.____|__) / ___/
、 .i:⌒`─-、_,.... l / `ー┬一' ヽ :l / , ' `ソヽ /l \/\| \
ヾヽ l ` `ヽ、 l ./ ヽ l ) ,; / ,' '^i━(t)━━l | | |
つーか、いい加減パッチを有料にするのやめろ
逆に有料なんだから、四の五の言わずにさっさと出せとは思う
>>400 ワザとバグ含ませてリリースしてるとしか
>>404 すまんがそのレスの意図を教えてくれないか
また教えてくんか
教えろ
oracleをシャットダウンするときは、いつも shutdownコマンドだけでは落ちなくて、 transactionalかimmediateをつけるんだが、オプションなしのshutdownだけで落ちるのだろうか。。。長年の疑問だ。
shutdownをshutdown immediateのエイリアスにしているのは常識
>>409 そんな常識聞いたこと無いけど流派でもあるのかね
>>408 10gでshutdownで通常より時間がかかるってバグがある
プロセスが原因だった気がする
shutdown abortでもインスタンスが落ちない事もあるらしいな
シャットダウンでshutdown immediateを使うのは普通じゃないかな?
OSを停止するときのスクリプト(自動生成されたもの)の中に書かれているのも
shutdown immediateだし。
>>412 shutdown abortでも落ちなかったら、やっぱkillコマンドとかで強制的に
プロセスを終了するしかないのかなぁ?
どのプロセスをどの順番でkillすればいいのか、すごい不安。
話は変わるが、
最近 My Oracle Supportにログインできないこと多くない?
特に日中。
アクセスが多くて耐えられていないのかねぇ?
日中の方がアクセス少ないんじゃね
あんな英語ばかりのサイト
DatabaseLinkの向こう側のテーブルから引っ張ってくる処理について何方か
教えて下さい。
Link先の2つのテーブルA(10万件)とB(100万件)に対して、Aの条件(例えば、
A.FIELD1=100)でBを引っ張ってきたいんですが(FIELD1はBにはありません)
普通に書けば
SELECT B.* FROM A JOIN B ON A.PK=B.PK WHERE A.FIELD1=100
こんな感じかと思いますが、AとBが両方Linkの先にあるテーブルだと、WHERE
条件に関係なく、AとBの全件が一旦ローカルDB側にFetchされるんでしょうか?
それとも、ネットワーク越しに引っ張ってこられるのは最終結果分のレコード
だけなんでしょうか?
>>418 両方とも遠隔の同じサーバにあるなら、基本的には向こうで結合して結果だけネットワーク介して返してくれるよ。
ただし、たまにローカル側で結合しようとする事があるよ。Nested Loopならそんなことは無いんだけど、Merge SortやHash Joinでたまにローカル側に持ってこようとすりことがあったような。
ま、安全なのは向こうでView作っちゃって、こちらからはそれを呼ぶ。
向こうにViewを作る権限ないことが多いよねー
>>418 DRIVING_SITEヒント句で制御できる
連携先と会話する権限もなかったり
連携される側からはうざいんだよねー
パフォーマンスに影響がでるとぶち切りたくなる
なんでうちが文句言われなあかん!
連携は計画的に
みなさんのDB運用ってどうやってます?
サーバ全般の運用オペレータが障害検知。
DB障害発生後、対応ナレッジにないケースはDBAに対応依頼。という流れで、どの程度まで運用側に任せているか。
(運用オペレータはDB知識なし)
任せても結局のところあまり役にたたないや、任せて二次障害に発展した、運用引継ぎに時間さくだけ無駄だ、がっちり引継いだから楽になったなど意見下さい。
…運用?
どこまでやるかなんてサポート費用次第に決まってるだろ
普通、運用チームはDBをがっちり引き継ぎなどする気は微塵もないだろうて
>>428 社内だからサポート費用なんて発生しません
>>429 そうなんですよね
実際アラートログすら見ずにDBだからDBAにって流れになってます。
オペレータ側はORACLEって名前だけで恐怖心を抱いてるイメージすらあります。。。
やはりDB運用はDBAが専属でやるもんなんですね。。
開発期間中に運用設計してないってこと?
もしそうなら引継ぎなんてできないんだからDBAが面倒見るしかないよね
現実は
>実際アラートログすら見ずにDBだからDBAにって流れ
ということなんだから
・運用設計できてない
・引継ぎできてない
・オペレータの教育不足
のどれかじゃないの?
現実はどうであれ、運用コストを圧縮せよって話は
どこの会社でも企業のトップクラスから相当な圧力を受けてるね
TivoliとかJP1とかの監視ツール使うような規模か自前で監視システム組み込むかで
コストも大分違ってくるね
アラーとログ見るにはサーバに入らんとダメじゃん。
オペレータがいる規模なら、そこまでやらせるのはありえんだろ。
アラートログを見るのが当然みたいに言ってるんだから結局運用設計できてないってことじゃないんですかね。
障害発生時の初動でオペレータが何をどうすべきなのかは手順書と調査する手段を用意して引き継ぐものでしょう。
あと、運用部門が必要なアカウントを必要な時に貸し出す形で各システムの権限を管理してるサイトはありますよ。
通常のオペレータに貸し出せる権限は絞られてますしパスワードもその都度運用責任者が変更します。
そのサイトでは手順書に書いてある操作のみを実施するので、それ以外の状況なら真夜中でもDBAに連絡します。
それが標準だとは思いませんが、安易にDBAを呼び出されたくないのなら
>>433あたりを見直してみてはと思います。
訳の分からないものを無理して使うからよ
アラートログはEMから見れるやん
EMはちゃんとオプションラインセンス料払えよ
プロマネ 「EM買えるくらい予算余ってるなら、その金こっちよこせ」
相対的にみて、DBAの給与って安いですか?
>>440 あれ?スタンドアロンでもいるんだっけ?
10gのEMって起動に失敗するわリソース食うわゴミ撒き散らすわで
積極的に使う気が起こらなかったけど、現行のはましになったのかな
給与なんてピンキリ
次の方どうぞ
障害でデータ戻せなかった経験あるやついるか?
そんなとき現場がどんな風になるのか聞いてみたい
プロダクションで不完全媒体回復ってそうそうあるもんじゃないからなぁ。
10年以上Oracle触っているけど、open resetlogsでプロダクション上げた
事なんて片手で足りるぐらいしかない。
幸いな事に一回も失敗した事はないがな。
DBAってアプリ側からSQLのアドバイスを求められること多いの?チューニングとか
実際DBAが1番現場で求められることってなんですか?
入社三ヶ月目で会社からDBA目指さないか?って打診うけてます。ちなみにユーザ系情シスです。
>>449 チューニングはDBA側からやるもんじゃなくアプリ側からやるもんだけどな。それを分かって無いやつが多すぎるのが現状やな。
チューニングは両方でやるもんだよ
一番、結果がいいのはアプリのほうだけどな
DBAがいくら頑張っても糞みたいなSQLだと
どうにもならん
>>452 んだね。DBAはアラートをあげてくれるだけでいいわw
>>449 そうだなあ、やはり全体的に物事を見れる能力じゃないかな。
その中にはOracleに関する事はもちろんの事、O/Sに関する知識、
N/Wに関する知識、そしてアプリに関する知識等が求められると
思うよ。
>>449です。
みなさん回答ありがとうございます。
すべて参考になりました。
チューニングに関して勉強したいと思ってますが
いまいちイメージ掴めず、意味も分かりませんでした・・・
DBAの敷居の高さがわかりました・・・
敷居が高いとは思わないけど短期で速習できるようなもんじゃないから
もう少し順序立てて習得していくほうがいいと思う
ま、とりあえずOracle Conceptsを読めばいいよ。日本語だと概要ってやつ。
まさかいきなりOracleのManual読めとか薦めてるんじゃないよな
そうでーす!だめ?パフォチューマスターへの道はあれを熟読がちかみち!パフォチュー本よんでも付け焼刃的な知識しか得られないよ。
SQLを書き換えさせるとか普通にやるんじゃね
アプリの人間って、そんなSQL各能力高くないやん
データ取れればいいみたいな感覚でいるし
SQLをチューニング不要とか誰も言ってないですけどね
>>460 アプリの人間よりSQL書けるDBAさん?
オレの回りには居ないなぁ
アプリの人間は保守性や可読性優先で作り、そこがボトルネックになれば書き換えるって認識だと思うんだけど。
それにしてもこれは…っていうのも勿論あるけどね
最近はSQLを自前で書くのも悪とされてるからな
466 :
NAME IS NULL:2011/10/29(土) 16:47:11.09 ID:dR6QgeDD
SQLチューニング・アドバイザ?ってやつが使えればSQLチューニングって出きるんじゃないの?
>>464 アプリはORマッパーというものを使って、テーブルとクラスをマッピングするから
アプリからはクラスを使ってDBにアクセスしてね。SQLを直接書いたり
しないでねっていうのが最近の流れなんだよね。
O/Rマッパーとか、、、Oracle使う意味ねぇよな。
>>467 プラス、
SQLを勉強する必要は無いからね
って勘違いした輩が量産されて困る。
でも時代の流れだし、
UNDO領域を手動管理していた人から見れば俺もその一人かも。
F1カーにオプションめちゃめちゃつけてどなたでも安全に簡単に一般道をご利用頂けます!
そんなのには乗りたくないよ。
SQLは難しくて使いこなせるヤツなんてほとんどいないから、SQLレスなORマッパで生産性最高ってこと?
そういうことじゃないと思うな。
一種の宗教でオブジェクトにあらずんば人にあらず
って感じなんだと思う。
アプリで使っているフレームワークが内部で、
テーブルのメタ情報とか取得してたりして、
環境によってはそのSQLが激遅なことがあるんだが。。。
アプリ開発者も知らないSQLがフレームワーク内部で勝手に発行されてる訳だから、
チューニングしようにも、どうにも手の施しようのないことがたまにある。
だが生産性だけは上がる
ヒント句を使うのさえも原則禁止としているアプリ開発とかあるからな。
その時点でチューニングが禁止されているのと同じだよ。
いまデータベース作ってる
ORACLEに代わる製品を生み出してしまうかもしれん
1人でやってるからあと5年くらいかかりそうだけど。
>>475 ヒントは原則禁止だといいと思うけど?
チーム開発では人によってスキルが違うからね。
開発者全員がOracleゴールド相当の知識を持ち、
将来的にもOracle以外使いませんって状況じゃないと原則禁止は外せんよ。
ヒント使いたいけど今求められてるのは低コスト短納期。
速度以前に想定内の障害への対応も要らないって言われたりしてなんだかなぁって感じ。
>>476 RDB?がんばってください。
オプティマイザがヘボのせいで、ヒント使わないと、限られたリソースでまともなパフォーマンス出ないんだから仕方ない。
使い方にもよるだろうけど
ヒント文は必須だよな
何もしらない奴が似たSQLをヒントを含めてコピペ改変して問題起こしそう
むしろコーディングルールで
・INDEXヒント句は必ず書くこと
・2つ以上のテーブルを結合している場合は必ずLEADING句を書くこと
を強制したい
その強制が100%良い結果をうみだす保証を誰かができれば、規約になっているだろうな
実行計画をプログラミングできればいいんだよな
484 :
NAME IS NULL:2011/10/30(日) 10:43:39.22 ID:o3+wyDSN
DB2は実行計画をプログラミングできる
Oracleは実行プロファイルの中身を書き換えられないんだっけ?
オプティマイザの頭の悪さは異常
オプティマイザを馬鹿にする前に色々やる事あるけどやってるのかな?
あとヒントはLEADINGはいいけどINDEXの強制ってのはどうだろうか。なぜ本来使われるべき索引が使われないか分析した?
あと実行計画は手を入れられるよ。Outlineと、それを使ったハックを調べるべし。
>>オプティマイザを馬鹿にする前に色々やる事あるけど
よくわかんないけど色々やってやんなきゃまともに動かないのか
オプティマイザって馬鹿だな
で、色々って何?
オプティマイザが馬鹿だと思った事例を具体的にあげてくれればその対処法を教えるよ!
対象テーブルが1データブロックに収まる場合、INDEX使わないんじゃなかった?
INDEX読むと計2ブロック読む事になり、1ブロック+フルスキャンに負けるから。
>>490 正確に言えば1ブロックより多くても全表走査はおこるよ。db_file_multiblock_read_countとかによる。
492 :
NAME IS NULL:2011/10/30(日) 12:51:47.59 ID:XisYBS49
フルスキャンさせんなって良く言われるんだが、そうすればいいのか分からない
教えてくれ
>>492 そもそもね、フルスキャン=悪、っていう考え方は間違ってるから、改めた方が良いよ!なかなか受け入れられないけどねw。特に上司とか。
ちなみに、フルスキャンしてるテーブルはどれくらいのサイズ?それでSQLで抽出してるのそれの何割くらい?
あのなぁ…
ここら辺のオプティマイザの愚痴は別に解決策求めてるわけじゃないんだよ
おまえのやってることは共感を求めてるだけの女性の愚痴に対して
空気を読まず解決策を提示しようとする男性の行為
おまえモテないだろ
>>494 そかな?だってここ質問スレだよ。KYだったならROMります〜。
そりゃ具体的な解決策求めてりゃ最初から具体的な内容書いてるだろ
今さらだけど変な流れになってるので質問。
JOINにLEFTもRIGHTも無いじゃんと思うのだけども、
どういういきさつでそうなったの?
集合論には無いよね?
コッドさんもそんなこと言ってないよね?
フランス語では名詞にはすべて男性か女性かの性別がついている
たとえばチョコレートは男性で月は女性である
つまりはそういうことだ
SQLServerはOracleみたいに極端に性能がぶれるという経験が無い。
Oracleはカチッと嵌ればSQLServer以上のパフォーマンスを出してくれるのかも
知れんが、ツボを外した時の劣化がちょっと極端すぎる。
>>500 そういうところがオプティマイザ(笑)ていうネタにされるんだよね
>>486 アウトラインは今後のリリースではサポートされなくなる。
だから無駄ムダムダ〜
LONG型はいつなくなるんだよ
いつなくなるって…まさか使ってんのかよ
SYSTEMが使ってるだろうが
だからボラクルって言われちゃうんだよ。
そういうところはボラ社員が手を入れないとパフォーマンスが出ない
うちが受託してるアプリのテーブルにバリバリLONG型使いまくってるんだが
火が噴いてこっちにしわ寄せが来る前に会社辞めた方がいいかな
9.2だけどLOBが不安定でLONGにした
まだ廃止されたわけじゃないんだから使えるバージョンでは使いたいところで使えばいいんじゃないの
バージョンアップでいきなり本当に廃止された時の移行作業の手間を覚悟しとけばいいだろ
今後サポートされなくなる機能でも現時点で有効な代替案が無ければ使うしかないよ
以下のSQL文を実行すると、怒られます
>SQLエラー: ORA-00904: "D"."COLUMN2": 無効な識別子です
どこが、おかしいのでしょうか?
update
(
select
d.id, d.column2,
m.id, m.key
from d_data d inner join m_master m on d.id = m.id
)
set d.column2 = 'key';
>>511 setの後のd.が間違い。消せばおk。
おまえらの一日ってどんな感じなの?
おれは
出社(10:00)→メールチェック→OTN見る→昼飯→メールチェック→ OTN見る→お茶→ OTN見る→帰宅(18:30)
たまにテストDB作成したりが入るがな。
似てる。俺は、
出社(9:00)→メールチェック→2ch→昼飯→メールチェック→ 2ch→お茶→ 2ch→帰宅(18:00)
俺も大体同じかな
起床(13:00)→メールチェック→2ch→朝飯→ゲーム→昼飯→アニメ→夕飯→睡眠(6:00)
DBA って白い目で見られてるよね♪
パフォーマンスがでないのはお前らのAPが悪いんだ!
DBは悪くない!
似た様な感じだな。
出社(9:15)→メールチェック・2ch・自宅鯖でゴニョゴニョ→昼飯→メールチェック・2ch・自宅鯖でゴニョゴニョ→帰宅(18:00)
つまらんネタはtwitterでやれ
だれかGoldengate導入した経験あるやついないか?
無停止移転って謳ってるけど本当なのか
教えてください。
DBサーバーが複数台あり、OSのバージョン、Oracleのバージョン共に同じなのですが
APサーバーからDBに接続(CONNECT)を試みると、テストサーバーへの接続だけ、20秒ぐらい掛かります。
【DBサーバー1】本番機
Windows Server 2003R2 SP2
メモリー:3GB
Oracle Database 9iR2(9.2.0.8.0)
※瞬時に接続
【DBサーバー2】テスト機
Windows Server 2003R2 SP2
メモリー:4GB
Oracle Database 9iR2(9.2.0.8.0)
※20秒掛かる
【APサーバー】
Windows Server 2008R2 64Bit
メモリー:8GB
Oracle Client 11gR2(11.2.0.1.0)
IIS7.0
>>521 とりあえずFAQがあるのでsqlnet.authentication_servicesでぐぐってください
523 :
521:2011/11/01(火) 13:50:20.39 ID:???
回答ありがとうございます。
SQLNET.AUTHENTICATION_SERVICES= (NONE)
については既にAPサーバー上のsqlnet.oraにて対応しており、
それでも遅い状態であります。
PINGレベルで差があるってことは?
>>521 こーゆーやつ仕事出来ないんだろうな
自分がこんな説明されて原因教えてくれと言われて何か言えるの?
クズとしか思えないわ
だな
まずはパケットキャプチャでもしてみればいいのに
エスパー募集ですって一行目に書いてくれれば許さないこともない
>>521 ホスト名を書いてあるとこ、片っ端からIPアドレス直書きにしてみれ。
それならhostsファイル書けばいいだけじゃなイカ?
x86なSolarisにインスコしたOracle11gの上で、JavaからProcedureを呼んで、Procedure
の中でUTL_FILEを使ってファイル出力を行おうとすると無効なファイル操作ですと
言われて怒られる。
DBサーバにログインしてsqlplus上から同procedureを実行する分にはエラーにならない。
Windowsマシン上でcmdからsqlplusを立ち上げて、そこからprocedureを呼ぶとやっ
ぱりエラー。
でもSPARCなSolaris上のOracle11gだと、前述の全ての条件においてエラーにならない。
もう訳分からん。
>>521 本番機とテスト機とは違うネットワークセグメントなのか?
だったら途中でF/Wとかかませていないか?
そのF/W機器が悪さしているという可能性はないのか?
>>530 なんとなくパーミッションの問題の様な気もするが・・・。
DBサーバーでログインするユーザーもWindows上からログインするユーザーも同じなんだよね?
>>530 x86とsparcで構成まったく一緒なの?
いままで構築系ばっかりでDBA業務は経験ないんだけど社内SE(DBA)なれますか?
DB構築経験は二年ほどで4プロジェクト経験してます。
DB構築ってDBAがやるもんじゃないの?
ちっちゃいプロジェクトだと開発SEがインスコとか構築とかやらされることあるけど
sqlnet.authentication_servicesって
DBサーバー側の設定じゃなかったっけ?
>>535 構築はお手のものなんだが、運用がさっぱりわからない
具体的になにするのか、、、
客から動作が遅いとクレームが来たらOEM見て適当に開発に投げる
REDOログを適当に手動で削除
テーブルスペースが一杯(94%超)になってきたら開発に退避しとけと命令
ていうか、今時DBA専任なんて贅沢な企業あんの?
DBも含めたシステム全体の保守じゃなくて?
うるせぇよチンカス野郎
何この子(;´Д`)
開発「Oracle保守してほしいんやけど〜wwwwww」
俺「本システムでORA-600が出たときの対処手順は」
親戚「・・・え・・・!?」
俺「内部エラーです。」
親戚「・・・う、うわあ・・・ああ・・・ああああああああああ(イスから転げ落ちる)」
俺「どうかしましたか?」
親戚「ああ、あふゥッ・・・ひいいい・・ガクガク(足が震える)」
俺「やだなあ、そんなにびびらないで下さいよ。基本的なエラーです
から^^」
親戚「ああ・・あ・うんっ・ああ・・・ビクンビクン(小水を漏らす)」
俺「ちなみに他にもエラーは出ます。」
親戚「あんっ!ああん・・らめ・・・もうらめえ!ビクンビクン(射精する)」
>>529 hosts無視してDNSを先に参照している可能性もあるでゲソ
なるほどでゲソ
>>542 windowsは、hostsあったら必ずDNSより先だったはず。
545 :
521:2011/11/02(水) 13:30:02.65 ID:???
>>521です。
色々と教えていただきありがとう御座います。
>>524 PINGレベルで差はありませんでした。
>>528 tnsnames.ora、listener.oraの記述は、コンピューター名では無く、
IP指定で記述しております。
>>531 同じネットワークセグメントです。
>>536 サーバー側もNONEにしておりました。
申し訳御座いませんが、引き続き情報頂きたく存じます。
ついうっかり聳え立つ糞のようなSQLを実行してウンとも寸とも言わなくなって
セッションをブチ殺しても全然戻って来ない場合に、(例えば、INDEX要素じゃな
い項目を条件にして20億件のレコードの大半をDELETE FROMするとか)手っ取り
早くそのSQLを実行してるOSプロセスをキル(KILL)してしまうのはアリなんで
しょうか?
>>546 順番が逆じゃないの?
プロセス強制終了してもDBのセッションが残ったらセッションを消せばいいと思う
あり
shutdownするまでセッションが残る、に10ペリカ
>>546 ありです。確実に殺すにはkill -9で殺すと良いです。
>>549 10ペリカ=1円
つまり、キル -9してセッションが残る可能性はほぼゼロという事ですね
>>547 普通は、まず最初はOEMなりPLUSからセッション切断じゃね?
でもセッション切断をしてもすぐに切れるわけでもないので、最後の手段として
プロセスキル
>>545 今は専用サーバ接続使ってる?一度、共有サーバプロセス接続を試してみたらどう?
>>546 「ありか?」と問われればありですが、
まずはALTER SYSTEM SESSION KILL でしょうな。
それでだめなら、kill -9 かと。
alter system kill sessionでCPUスピン
10g11gで出る
みんな実際に
>>546の状況で本当に先にSESSIONからKILLしてるの?
>>545 本番機とテスト機が同じネットワークセグメントというのもまた凄いな。
>>552が言う様に共有サーバー接続を試して、直ぐにつながる様に
なるんだったら、途中のネットワーク機器もしくは、Windows F/Wが
悪さしている可能性が高い。
問題切り分けのために一度試して見る事をお勧めする。
>>557 でもいきなりkill -9 って恐くない?
本当に該当プロセスならいいけど、万が一違うプロセスだったら嫌だし、
OS資源的に(場合によっては)解放されないものが残ることも考えられるのでは?
なので私は、V$SESSIONあたりで特定して、
必ずALTER SYSTEM SESSION KILL からやることにしてます。
しばらくSTATUSがKILLEDのまま残ることがあるけど、
やがてPMONがお掃除してくれるから、OS資源的にも気休め程度にだけど安心できる。
>>554の事例に当たったことがある人は先にプロセスをkillするんじゃないかな
アプリやスクリプトが、投げたSQLが戻ってきたらそのまま次の処理に進む、みたいな
セッションのKILLや異常終了を考慮してない作りになっているのであれば、ていうか
なっていないという事が分からないのであれば、被害を拡大させないためにも、
先にプロセスをkillした方がよい、と思ってる
alter system kill sessionは、そもそもkillできない、killしたセッションがいつまでも残り続けて
消えない、暴走する、というトラブルの記憶があるから、今でもちと怖い
つってもkill sessionはするのだけど
たまにこのスレ見ててうちの社員がレスしてるんじゃないかってのがあるわ
俺ならマシンを再起動する
563 :
NAME IS NULL:2011/11/03(木) 15:49:26.72 ID:M8vIGgwP
>>560 IMMEDIATEオプションだとkillされるようだ
11gからだけど
やはり共有サーバーよりも専用サーバーの方が運用大変なのかな
>>565 えっ。共有なんか使いたくないよむしろ。
ストアドのバージョン管理ってどうやってますか?
svnとかに投げてますか?
>>568 うちではストアドとかのソースに限らず成果物は全てSVNで管理してる
ObjectBrowserが好き過ぎて萌え死にしそうなんだが。
これ以上に使いやすいツールがあったら教えてくれ。
CSE
>>565 今時のマシンリソースだと共有を見かける事の方が少ない気がするのだが・・・。
574 :
568:2011/11/03(木) 23:38:42.39 ID:???
>>573 3階層システムがほとんどになったからでしょ。
会社にOracle社の人が構築していったという11gR1のOracleがあるのだが、
自動化メンテナンスタスクが無効化されており、統計情報の取得が行われない設定になっていた。
動的サンプリングのレベルを指定するOPTIMIZER_DYNAMIC_SAMPLING初期化パラメータもわざわざ0に設定されていたり、
何が何でもオプティマイザに情報を与えないようにしてるような感触を受けた。
私にはどうしてこのように構築したのか、意図が汲み取れないのだが、
みんななら構築者の意図をどのように捉えますか?
「サポートしてほしいのならまずは出すもん出してもらおうやんけぇ」
578 :
NAME IS NULL:2011/11/05(土) 20:33:36.82 ID:oq62fcdh
統計情報の自動採取ジョブを止めるのはDB構築後最初の頃にやる標準の手順だろ
ちゃんと統計情報とるジョブを設計しろよ
580 :
576:2011/11/05(土) 21:19:23.42 ID:???
>>578 >ハードけちっただろ
ごめん、どーいう意味だろう?
ショボいスペックなマシンならそのジョブや動的サンプリングは止めたほうがいいという意味?
それとも構築者(構築社?)の悪意って意味?
>>579 >統計情報の自動採取ジョブを止めるのはDB構築後最初の頃にやる標準の手順だろ
>ちゃんと統計情報とるジョブを設計しろよ
確かにワークロードに応じて統計情報をとるジョブを設計するのがベストなのは理解できる。
でも、自動化メンテナンスタスクや動的サンプリングを無効にして運用するのは一般的なのかな?
あなたのところはそう?
>>580 今までに関わったプロジェクトではテーブルの特性ごとに設定した運用しかやったことないけど
Oracleが標準で登録してるジョブは自分が意図しない時期に意図しない方法でとられた統計情報が
使えると判断してるならそのまま使えばいいんじゃない?
ちょっと文章がおかしくなったけど文意は伝わるかな
時代はRuleベースだぜ!、って事なのでは?
584 :
580:2011/11/05(土) 22:05:23.48 ID:???
>>582 >ちょっと文章がおかしくなったけど文意は伝わるかな
大丈夫。
ありがとう、伝わりました。
>>583 >時代はRuleベースだぜ!、って事なのでは?
結局はそこが狙いなのかな?
例えば、急激に増加や減少を繰り返すようなテーブルの場合、
統計情報が役に立たず、場合によっては悪影響すら及ぼしかねないので、
最初からあえて動的サンプリングさえも無効にしたってことなのかな。
(それならそれで、納得はいくんだが)
運用開始時に統計情報をとっておき問題なく稼働させ
数ヶ月経つとパフォーマンスが低下してきて再度コンサル依頼で2度おいしい
統計情報を取るなら取るで、対象のテーブルはどれか、いつ取るべきかみたいな検討が
必要になるわけだが、その検討ができなかったんなら、とりあえず止めとくのが無難だと
考えるんじゃないかな
どうせ統計情報取らなくってもちゃんと動いてるわけだし、遅いとかそういうのでなければ
これからも取らなくていいんじゃないの?
無理矢理RBOにしない限りシステムデフォルトの統計情報が使われるんだよね
それで問題なく使えてるんならその程度の規模のDBだってことじゃないの?
問題になってるなら対処するだろうし
今やってる案件(プロジェクト)って、レコードを挿入(インサート)したら
その後に必ず統計情報を取得するっていう規約(ルール)になってる。
夜間処理限定の規約だけど。
ただ、1回の夜間処理(バッチ)で5千万とか1億とかレコード作るバッチが
いて、そうなると統計情報取るだけで1時間とかかかるんだよ。
あと、1回の処理では50万レコード位しか作らないんだけど、パーティショ
ン化されてない3億件のテーブルに挿入してるんで、こいつも統計情報取得が
遅い。
>>636 そこまで酷いとCPU増やしてパラレルでグリグリとやるしかないな・・・。
つまるところ、ケースバイケースだな。
それなら、デフォの平日22時と土日6時ってのは
いっそのことやめてくれればいいのに。
俺みたいな素人にはどうすべきなのか正直判断つかないので、
教科書どおりOracleやサポートの「推奨」という言葉を信じてしまう。
RBOは今はもう非サポートとか言われるし、会社のシステムである以上、
自己責任でRBOを使う訳にもいかないので、
それなら嫌でもCBOを使わざるを得ないじゃん…。
ミドルパス出ました!
>636 さん後はよろしく!
>1回の処理では50万レコード位しか作らないんだけど、パーティション化さ
>れてない3億件のテーブルに挿入してるんで、こいつも統計情報取得が遅い。
それ、別に統計情報取る必要ねーだろ。0.2%程度しか変動してねーじゃん。
もうちょっと頭使えよ。
もうちょっとって何%くらいですか
変動差分の統計情報取るって考え方があっても良いのにね。
USER_TAB_MODIFICATIONSじゃなくて?
>>597 違うぞ
数時間ごとに更新されるディクショナリビューだ
オラクルの資格にゴールドとかプラチナとかあるけど、どれぐらいのレベルであればORA-00600エラーの原因特定できますか?
資格試験にそんな問題はない
>>600 ORA-600とその引数キーワードにMOSで検索すれば、大概わかる。
ORA-600は基本、製品の不具合だからな
MOSっていう略号だとMicrosoftの方が先に思い浮かぶ
役にたたねーインポ資格ですね。
また下ネタしかできないオヤジがでてきた
>>600 プラチナ持ってようが無理
製品不具合解析→自分でOracle並のDBを作って会社立ち上げるレベル
大体、試験範囲で網羅できるほど、ORA-00600が甘いわけないだろ。
試験で問われるとしたら、ORA-00600が発生した際の初動とか。
でもそれって凄く重要。決して試験は無駄じゃない。
そんなの試験とか全く関係ないと思う
試験でORA-のエラーの初動なんて聞かれたことないけど
そもそも試験ってOracleにバクがあること前提なの?
ORA-600は無視できるのもあったりするからなw
ログ監視の除外設定がめんどくさくなってかなわんのだが。
>>613 パッチを当てたら無視できなくなって結局個別パッチ適用しないといけなくなったりするのもあるけどな
615 :
sage:2011/11/08(火) 14:11:31.62 ID:???
オラ600とは違うけど、なんかのエラーが「通常、このエラーはユーザーには表示
されません」となってるのに普通にバンバン出てくるんだが。
通常表示されないのなら絶対に表に出さないような実装にしろよボケと思う。
617 :
NAME IS NULL:2011/11/08(火) 15:38:52.25 ID:MJWGg5uv
aa
618 :
NAME IS NULL:2011/11/08(火) 15:48:10.40 ID:MJWGg5uv
DB:Oracle database lite 10.3
OS:windowCE6.0
winCE上にOracleLiteをインストールし、単独で
動作させたいんですが、どのようにすればよろしいですか?
モバイルサーバー?などで同期など取らずに、
単純にDBいれて、createtableや、selectしたいんですが、
ネット上のガイドを読んでもさっぱりわかりませんでした。
ゆくゆくは.netでPG開発、DBにOracleLiteを使いたいと思ってます。
よろしくお願いします。
>>610,611
あれ、出なかったっけ?
ORA-600やORA-7445が出たときにまずどうしろ(何を見ろ)とかいうのが。
記憶違いだったかな。。。
エラーが出たら諦めて、まずはサポート契約しろ?
アラートログには600をはじめ、どんなエラーが出るかってのは、ブロンズレベルかな
解決策がわからなければ
ログ見れても何の意味もないけどね。
まさに無駄資格
>>622 ORA-600は、基本的にバグなわけだが、
ソースコードを見ることのできない製品のバグ原因を自力で特定できる、エスパー力が身につく資格がどっかにあるのか?
つまりどんな資格をとっても問題解決はおろか原因特定もできないわけですね。
役立たずな資格なんてなくてもサポートがあればそれで十分じゃん。
現状はユーザにバグ見つけさせてるんだからそれを一歩進めてソースコードを同梱しといてくれたら
みんなでデバッグして修正版を返してあげるよね
サポート会社っていくつかあるわけだが、契約するとしたらどこがおすすめ?
特に難しい試験じゃないんだから、ゴールドくらいまで、ぐたぐだいわずに取ればいいんじゃないの?認定されるようとすると、金かかりすぎだけどな。。
サポートが見当違いの回答返すことだってあるわけだし、適切な方向に誘導するためにはある程度の知識は必要でしょ?
plusからのやり方おさえてれば、EM系の操作知識は不要だと思うけど。
>>626 ○シストと、H○使ったことあるけど、両方親切だった。金額は、知らん。
資格とるならプラチナ
ゴールドまでで我慢するくらいなら金かける価値ない
サポートとやりとりする知識は資格がなくても問題ない
>>626 導入してるサーバーのメーカーがサポートもやってるトコならそこにしといた方がいいと思う
>>630 ゴールドまでの知識を、実機ベースで疾く正確に実施できれば、プラチナは余裕で合格できるぞ。
問題は受験料の高さだけだ。
資格を取ること自体が目的で、ゴールドまで取った人には敷居が高いんだろうけど。
プラチナ持ってないと仕事ができなくなるようになったら考えるわ
まともに仕事できないやつでも資格は持ってるケースもあるんだよな
全く。
一般人は取得資格=スキルって思うよね。
クラムゴールドのアイツと同レベルに見られて心外だわ。
>>631 なぜ?
そのベンダーもORACLEに聞いてるだけだろ
ハード故障との切り分けが早い
特にストレージ障害のときにハードベンダとOracleサポート窓口が別だと
結構な確率で原因不明のまま、再現待ちのステータスで放置される
どの代理店と契約しても当たり外れはあるような気がする
なにか根本で勘違いしているかも知れませんが教えて下さい
64CPUのOracleDBサーバで集計の為のSELECT文を実行したのですが、その際に
INDEX_FFSとPARALLEL_INDEX(多重度4)のヒント句をつけました。
その状態で実行計画を見ると、"PX COORDINATOR" とか出てきてるので、パラ
レル化されているように見えるんですが、実際にOEMで実行中のアクティビテ
ィを見ても1CPUしか使っていないように見えます。
4CPU使ってくれたりはしないんでしょうか?
641 :
626:2011/11/10(木) 07:28:28.71 ID:???
サポート会社の件、みなさんサンクス。
今後の参考になります。
>>640 多重度とCPU(コア)数は、全く関係ないだろ。
実はI/Oネック
なんかどっかのネトゲ会社のデータが全部吹っ飛んでサービス中止だってな
DBAは沈められてるかもな
おまえらOraclerはエミュレーターなに使ってるんだ?
teraterm/puttyに分かれるよな?
regard
>>650 俺はTeraterm派だな。
マクロ組んで、Unix LoginからDBログインまで自動化したりとかしている。
日本人以外は何使ってるのか気になる。
PuTTY一択なのだろうか
カーソルキー利用も補完機能も普通にできる時代なんだから
SQL*Plusもいい加減改良されないものかね
自分で作ればいいんじゃよ
米国のサイトで
Enterprise Manager Cloud Control 12c Release 1 (12.1.0.1)
Linux版がダウンロードできるようになったね。
次は、12gじゃなくて12cなのかもね。
>>652 ニューヨークだが、周りはPutty一択だな。
ぶっちゃけこの先OracleDBAの価値はどんどん下がるな
なにやるかなぁ。。
utf8が使えるようになったteratermに戻った。
puttyだと、ログ取りがめんどくさいのと、コンソールはずっとteratermだったし。
>>657 そうだね〜技術者が飽和状態にあると感じる
でも飛び抜けた人材は希少だと思う
経歴詐称までするにせものデビ男が多すぎるのさ
オラクルマスター取得証明のURL提示を依頼すれば済む話
どちらかというと受け入れる側が確認しないのが間抜け
プラチナを除けば資格の詐称なんて現場じゃ大した問題にならない
素人に専門の経験ありとか十分な経験があるとか経歴の詐称が悪質
経験というけどさー
未経験のやつはどうやってDBAになるの?
さわらせて貰えるの?
就職しろニート。
>>663 未経験者や新人は十分な経験者とニコイチで安く外部に売られていく
マ板行ってやれボケ共
pearsonで予約しようと思ったら、どの画面も
The service is unavailable.になってしまうんだけど、
どなたか、原因知ってます?
すみません。解決しました。システムメンテナンスですね・・・・・
動的SQLでセレクトした結果をカーソルに入れて返したいんですが、可能でしょうか?
>>670 プロシージャ内で動的にSQLを作ってそれをexecute immediateして、その結果をカーソルに入れて返したいということです。
>>671 execute immediate限定ってわけじゃなさそうと判断して
dbms_sqlパッケージ使えば大抵の事はできる
>>671 "動的SQL カーソル" でググレ。屑が。幾らでもsampleがあるだろうが。
>>673 黙れ屑
おれアホだけど
>>673がキョトンとしてることだけは分かる
ORACLEデータベースのなかにaviファイルとかmp3ファイルって格納できますか?
appstoreとかの仕組みが知りたくて
>>676 Oracle SecureFilesでぐぐるんだ
>>675 いやまさかそのカーソルをループで使う訳じゃあるまいな、ってことだったんだけど、、、
カーソルをループ以外のどういう処理で使うん?
Solaris版10gリリース2のEEで質問させてください。
DBMS_DATAPUMPについてです。
プロシージャでdmpを出力するために、DBMS_DATAPUMPを使いたいと思い、マニュアルなどを参考にPL/SQLを書いてみました。
しかしジョブを開始するためのDBMS_DATAPUMP.OPENのところで、「ORA-31626: ジョブが存在しません」とでてしまいます。それ以外のエラーはでません。
調べたところ、RAC環境では他のインスタンスでそのジョブを起動している場合は起動できないようですが、RAC環境ではないために違うようです。
DBMS_DATAPUMPパッケージについて検索してもあまり具体的な例がなく、困っています。どのようなことが考えられるか、ご存知の方がいたら教えてください。
682 :
680:2011/11/15(火) 22:34:13.49 ID:???
>>681 紹介ありがとうございます。
自分もいくつかのブログ等を参考に作りました。
今日も少しやってみたのですが、やはりうまくいきません。
ジョブの作成ののところは、
hand := dbms_datapump.OPEN('EXPORT','TABLE', NULL, NULL,
'COMPATIBLE' , DBMS_DATAPUMP.KU$_COMPRESS_METADATA);
というような感じで書いていて、ここで「ORA-31626: ジョブが存在しません」
というエラーが出ます。
今日一日で、パッケージを使うのを諦めつつあります。。
>>682 ひとつ確認なんだが、そのパッケージのオーナーはデータパンプを実行出来る
権限があるんだよね?
普通にコマンドラインでそのユーザーでexpdp出来るだよね?
>>682 もしかしたら旧OTNで出てる事例と同じかもしれんね
Procedureじゃなくて無名PL/SQLで実行した場合にうまくいくのならシステム権限が足りないということらしい
うちのSCOTT(DBA権限アリ)で試してみた
Procedureを作って実行 → 同じエラーが出た
無名PL/SQLで実行 → 正常に動いた
SCOTTに CREATE ANY TABLE権限付与(UNLIMITED TABLESPACEも必要かもしれない)
Procedureを作って実行 → 正常に動いた
685 :
680:2011/11/16(水) 08:16:53.89 ID:???
>>683 レスありがとうございます。
コマンドラインではexpdpできます。
パッケージが上手くいかない場合は、シェルスクリプトから起動するジョブに
しようと検討中です。
>>684 ありがとうございます。
CREATE ANY TABLE権限確認して、付与してみたいと思います。
また報告いたします。
パッケージのexecute権限を確認する
687 :
680:2011/11/16(水) 20:28:45.08 ID:???
>>683,684,686
レスありがとうございます。システム権限等を確認しました。
Procedureの所有・実行ユーザはDBAロールを与えられていて、
そのロールの中にCREATE ANY TABLE権限がありました。
UNLIMITED TABLESPACEも確認しました。
DBMS_DATAPUMPパッケージのexecute権限も
DBA_PRIVISで確認しましたが、PUBLICになっていました。
データバックアップの作業まであまり時間がないため、
今回はシェルスクリプトでコマンドを叩くことにしました。
こちらは今日作って、うまくいきました。
今後スキーマごとのバックアップなども考えているので、
そのときはこのパッケージを使えるように勉強したいと思います。
アドバイス、ありがとうございました。
おまえらってホント期待した答えを返せないのな
AUTH CURRENT_USER だっけかで実行者権限つけておけばいいだけじゃねーの
なんだったか忘れたが、ロール経由の権限ではちゃんと動作しないのがなかったっけ?
>>691 ストアドではROLE経由の権限は効かないっていうやつだね
ここにいるやつらはにわかDBAばかり
おれのような上級者はみんなOTNの掲示板でポイント稼いでる
「ここにいるやつら」に自分が含まれないような表現もできないやつでも
ポイント稼げるのがOTN上級者様
>>695 マジで昔みたいにポイントで景品復活しないかな〜
今でも折りたたみ自転車現役で捗る
Oracle DBで10年間飯食っていて、欧州を経て、今はアメリカでDBAして
いる俺もOTNの上級者様から見たら、にわかDBAなんだろうなw
良く考えてみたら15年ぐらいOracle触ってたわ。
まあ、にわかDBAだけどw
どうでもいい
11gR1を使っています。
ある大きなテーブルの中の、かなりの行をDELETEしたので、
ALTER TABLE 〜 SHRINK SPACE CASCADE ;
で一気に縮めようとした。
しばらく時間が掛かっていたのだが、その途中、別な人がそのテーブルにINSERTすると、
その人のセッションでORA-02049が発生した。
ALTER TABLE 〜 SHRINK SPACE CASCADEは、オンラインでいつでも使えると思っていたのだが、
これって、こういう仕様なの?
このエラーコードを調べてみると、
ORA-02049: タイムアウト: 分散トランザクションがロックを待機しています。
原因: ロックの待機がINIT.ORAのdistributed_lock_timeout秒を超えました。
処置: デッドロックとして処理してください。
となっているのだが、分散トランザクションなんて身に覚えはないのだが…。
どうすればよかったのだろうか?
勉強すれば良い。
704 :
702:2011/11/17(木) 22:54:42.66 ID:???
なるほど、勉強かー。
って、おい。
調べてみるとDBLINK使ってるとでるエラーのようだが、そんなの使ってない。
気になるとしたら、RAC構成だってことくらいかなぁ?
RACで別ノードから更新かけたら、分散トランザクションとやらにあたるんじゃろうか?
xx年DBAやってるとかなんの自慢にもならんぞ。
下っ端何年やってんだよ(笑)
おれは金融系の情シスでDBA6人管理してるわ。もう34歳だからキャリアアップしないとやばいが。。
データベースエンジニアの年収なんて高々800万がいいところ。マネージメント側に回れば1200万くらい。
まぁその分DBに何かあった場合には即首が飛ぶがな。
DBAを下っ端扱いするやつは問題起こったら間違いなくDBAに責任なすりつけて逃げる
唐突に年収をネタにするようなやつだしな
>>705 仕事している所がアメリカだからな。
40歳超えてる現役Unix管理者とかバリバリいるぞ。
まあ、年齢も年齢だからマネージメント的な事もやらされるが、
基本的に部下が出来る事は自分でも出来ないといけないと
思っている。
709 :
誰かおねがいします:2011/11/17(木) 23:47:08.87 ID:xVECTMkT
急用ができどうしても受験できなくなってしまったので、
11月30日までのORACLEのチケットを
1万円で買っていただける方いませんか?
>>708 おまえ偶にはまともなこと言うじゃないか
見直したぜ
>>709 バウチャーチケット?
てか一万円ってボッタクリじゃね?
2chで取引とかネタに決まってんだろ
713 :
NAME IS NULL:2011/11/18(金) 12:10:06.09 ID:4PkLwnBW
意外と本気です、
学校で全員強制的に買わされて受けるのをすっかり忘れてました…
今から勉強しても間に合わないと思うし
oraclebronzeは最短で何日ぐらいでとれますか?
地頭があれば一夜漬けでもイケると思う
>>713 iStudyのiPhoneアプリの問題集使えばアホでも日曜日までに取れる
そもそもブロンズ一週間で取れないやつなんていない
717 :
NAME IS NULL:2011/11/18(金) 22:36:40.83 ID:4PkLwnBW
ありがとうございます。
iStudyか黒本の問題集ではどちらの方をやればいいですか?
聞いてる暇があるなら、どっちもやれや
720 :
NAME IS NULL:2011/11/19(土) 00:15:43.01 ID:hLDESdKT
>>717 集中出来るの前提で
問題集2週して間違えた部分もういちどとくこと
その道に進むなら将来きっと役に立つ
バージョンが違うから比較するのが間違ってるかもしれないけど、
今のBronzeと、昔のSilver Fellowってどっちが難しいの?
経済的に難易度が上がりすぎだよorz
723 :
NAME IS NULL:2011/11/19(土) 01:44:40.91 ID:SV+cCKuE
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
みんなをポカポカ ですとろい
おひさまポカポカ ねころんで
おふとんフカフカ 昼寝日和
宿題だったら 終わったし
誰にもおじゃまは させないの
お鍋がコトコト 音たてて
お腹がグーグー ママが呼ぶの
テーブルに並ぶ お皿見て
ここぞとばかりに 叩き割る
(あー すっきり)
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
みんなをポカポカ ですとろい
夜空にキラキラお星様
箒でプカプカ 夢の中で
不思議なうささん現れて
魔法の国までランデブー
私はまだまだ 夢の中
小鳥がチュンチュン 日が昇って
おはようリンリン目覚ましを
ここぞとばかりに 叩き割る
(だって うるさいんだもん)
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
みんなをポカポカ ですとろい
<間奏>
ここぞとばかりに 叩き割る
わん・つー・さん・し!
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
みんなをポカポカ ですとろい
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
右手でポカポカ 左手でポカポカ
みんなをポカポカ ですとろい
>>721 問題だけの難易度は確実に上がっていると思う
情報源が、書籍やネットから沢山得られるようになったのも事実
package/package bodyでファイルの数を1:2にすことはできますか?
確かこのスレにはエスパーが居たはず
ファイルを1体にできるよ
>>739 なんでそんな事したいのか分からんが・・・。
無理して分けなくても、Bodyの中でサブルーチン化すれば?
1:2 → いち たい に → いったいに → 一体に
って、マジかよ、このエスパー
俺は、HOGE_PKG.SQL
みたいな1個のファイルの中に
パッケージ仕様部と本体と両方書いてるね。
どうせ全部俺が書くから分ける意味がない。
それを「一体」というなら一体だね。
ファイルの数を1:2にすることはできない。
733 :
725:2011/11/23(水) 11:59:25.73 ID:???
データベースが動きません!月曜の8:00までに動かないとヤバいので助けて下さい。
月曜まで、まだ何日もあるから、自分で頑張れ
日曜に入ってから聞きに来い
個人が落とせるフリーのお試しソフト
みたいなのってないのかね
ある意味違法コピー対策なんて不要なのか
さすがボラクル
おかしな真似するとどうなるかはSAPで照明済だからな
どのみちサポート契約しないと解決できないようなバク仕込まれてるからな。
開発者には実質タダでばらまいて採用増やしてライセンス料がっぽがっぽって魂胆なのかな?
開発者向けにタダで提供してるのはオラクルだけじゃないけどな
大きな違いは
>>742が言ってるとおり購入した製品のパッチを入手するには
更に高い金払わされる仕組み定着してるかどうか
ORACLEでパッチがダウンロードできないのは致命的
バグの巣窟だからな
sage
場合によっては、RACよりもシングルのほうがパフォーマンスがいいってことある?
例えばキャッシュフュージョンしまくって、それがボトルネックになってしまい、
結果的にシングル構成のほうがパフォーマンス面ではよかったりとか。
>>747 キャッシュフュージョンがネックになるかどうかはそのシステム個別の問題であって一概にこうだとは言えないから
対象システムの状況に合わせて検証しろとしか言えないでしょう
>>747 RACは運用しっかりやってれば最強
3node以上推奨
キャッシュフュージョン周りの状況を見ていると、正直、10g・11gの時点では、
RACの負荷分散には期待しないほうがいい
3ノード、4ノード程度ならともかく、多数のノードで構成させることにするなら、
RACはRACで構成しつつ、スキーマ単位なんかでAPがアクセスするノードを
割り振ってやるとかして、キャッシュフュージョンの効能に期待しない構成を
取ると、後々不幸になりづらい
正直、実行計画的にキャッシュフュージョンのコストが低く見積もられすぎてる
きらいがある
>>747 並行トランザクションが少なかったらあるいは?
しかし、逆転するまで行くとなると、メモリが圧倒的に足りていないとか、そんな状況しか考えられないんじゃないかな。
採番テーブルとかステータステーブルみたいので排他処理してると苦しそう
今時そんなAPがあるかは知らん
>>752 それがあるんだよ。
製品番号とか飛び番を絶対したくないとかって要望を客がしてきたりとかな。
しかもアプリが採番表をselect for updateで取ったりする仕様になっているから、
当然それがボトルネックになる。
そんなのでパフォーマンス出ないって散々デザインの段階で忠告したのに、
結局それが実装されて、しかもアホなアプリ開発チームから「DB遅いんだけど?」
って言われたりする。
遅いのはお前らの頭の方だ。
754 :
747:2011/11/25(金) 03:36:16.95 ID:???
みなさんRACのご意見ありがとう。
何を言ってもRACは高いので、自分とこの顧客が扱っているシステムでは、SE RACが殆ど。
3node以上になるとEEが必要になるし、それ以上のシステムは扱ったことがない。
まぁみんなの書き込みを逆に考えると、2node程度ではキャッシュフュージョンに
それ程まで神経質になることはないってことか。
ただマスターノードとそれに対する要求オーバーヘッドがどの程度なのかは
シングル構成には無い所だけに気になります。
とりあえずインターコネクトのトラフィックと、「gc 〜」って待機イベントは、
今後も注意して見ていきます。
11g以降ならマルチインターコネクトのフェイルオーバー機能も実装されているし、
GC系のウエイトはそんなに気にしなくていいんじゃねぇの?
RACでのスケールアウトよりも、
シングルでのスケールアップの方が、
性能はいいんじゃないかな。
RACって、レスポンスを多少犠牲にして、
スループットを向上させる技術でしょ?
シングルでのSQLの処理に加えてRAC
特有のオーバヘッドが必ず発生するわけ
だから。
2ノードでも、サイズの小さいテーブル、インデックスが、両ノードで頻繁に更新されたりすると、gc系の待機はすげー増えるよ。
キャッシュフュージョン処理効率向上のためのDRMは、クリティカルバグ多いし。。
RACを否定するわけじゃないけど、2ノードRACよりは、HA構成の方が幸せになれるイメージがある。
>>756 そりゃそうだよ。ただメンテ性が高いのがRAC
758 :
名無しさん:2011/11/25(金) 15:01:09.03 ID:???
>>753 可能な限り、トランザクションの終わりの方で、採番するように工夫すればいいんだけどね。
アホなアプリチームじゃ無理かもしれないが…
>>758 アホなアプリチームは処理の始めからselect for upateが基本だ。
nowaitもつけないから、ひたすら採番表待ちだ。
まぁ、行ロック競合の話だったら、シングルとかRACとか関係なくボトルネックになるけどな。
結局一番きついボトルネックはアホな設計者ってことですね
そういう変な実装をさせないよう、規約を作り、チェックして、正していくのがDBAってものよ
へんな実装してる原因は、どこにあるのだろうな
今抱えている案件の場合は、客先のプロマネチームが昔の階層化型DBの
中途半端な知識を持ちだしてきて、そういったアホなデザインと実装に
なった。
そいつらはカビた知識に固執して、正規化=悪と言い放って、重複表作りまくり。
こっちが幾らRDBMSのコンセプトを説明しても、理解出来ないから、結局
アプリチームにその思想の元に腐ったアプリを作らせた。
>>764 こっちが幾ら正論を持ちだしても自分たちが正しいと信じて疑わないから、
そのまま実装させたよ。
勿論パフォーマンスなんか出やしないから、事あるごとに「散々忠告しま
した様に、原因はデザインにありますが・・」って前置きをしている(笑)
こういうパターンは大抵…
ケンカ腰だから客も意固地になるんだろ
コミュ力0だな
老害シジイとまともにコミュニケーション取るとか無理だろ?
あいつら新しい概念とかいくら説明しても全く信じない。
アプリケーション組むのが楽になるというメリットを狙ったデータ設計をやたら毛嫌いする。無理なデータ構造を前提に、アプリやバッチ処理で無理やり整合性をとるのが当たり前だと信じてる。
そそ。
まさに百聞は一見にしかず。
実際にパフォーマンスでないのを目の当たりにしないと、
いくら口で説明しようとも信じようともしない。
派生話題スレッドでも作ってそっちでやってくんない?
派生話題スレッドでも作ってそっちでやってくんない?
派生話題スレッドでも作ってそっちでやってくんない?
派生話題スレッドでも作ってそっちでやってくんない?
派生話題スレッドでも作ってそっちでやってくんない?
誰か正規化というものをドラゴンボールで例えてくれないか
よくわからんのだ
自分が馬鹿だということが分かってるのなら黙ってろ屑。
もし自分が馬鹿だということが分かってないのなら親切にも教えてやるが、お前
は馬鹿だから黙ってろ屑。
>>776 ドラゴンボール→DB→データベース
つまりそういうことだ
すなわち、正規化=ドラゴンレーダってことやな
ドラゴンボール→DB→データベース
を
ドラゴンボール→データベース
にしたら
それはもう正規化と呼べるんちゃうか?
DBでええやん
はっはっは、おまいらおもしれーな!
神龍「さあ願い事を言え。一つだけ叶えてやろう。」
私……全てのSIierをOracleと契約する前に止めてあげたい!
全ての宇宙、過去と未来の全てのSIerをこの手で!
ちょっと規模の大きい案件だともはやOracleかSQL Serverのどっちかしかあり
えん訳だが、金とか諸々を一切抜きにしてお前の好きなほうを選んで良いよ、
って言われたら多分Oracleかなぁ。
どっちが好きかと言われたら間違いなくSQL Serverなんだが、T-SQLを早くPL/SQL
程度に高機能化して欲しい・・・
バッチ処理に限定すればPL/SQLは偉大だわ
RDBMSとしての基本思想はSQLSERVERのが優れているんだけど、実装レベルでは劣ってる感じだよね。
>>784 うちなら大規模案件でSQL Serverは並べんよ
OracleかDB2なら提案してる
質問です。
solaris版です。
11gです。
ODBCを設定してWindowsXPからSQL-liteでつないでいます。
以下内容をテキストエディタに書いて、
SQL-lite上で@c:¥hoge.sqlという形で実行しています。
内容はこんな感じです。
SET LINESIZE 1000
SPO C:¥hoge.TXT
--デフォルトの日付を設定
SET TERMOUT OFF
COLUMN selected_date NEW_VALUE default_date
SELECT TO_NUMBER(TO_CHAR(SYSDATE,'YYYYMMDD') - 1) selected_date
FROM DUAL;
SET TERMOUT ON
--パラメータ入力
ACCEPT para_date NUMBER FORMAT 99999999 DEFAULT &default_date -
PROMPT "日付を入力してください[&default_date]:"
--検索
SELECT 対象年月, 番号, 計上日, 取引先コード, COUNT(*)
FROM 売上データ
WHERE 計上日 = '&selected_date'
AND 取引先コード <> '0197'
AND 取引先コード <> '0016'
GROUP BY 対象年月,
番号,
計上日,
取引先コード
ORDER BY 対象年月,
取引先コード;
SPO OFF
実行すると
SELECTED_DATE
-------------
20111124
日付を入力してください[ 20111124]:20111124
selected_dateに値を入力してください: 20111124
旧 3: WHERE 計上日 = '&selected_date'
新 3: WHERE 計上日 = '20111124'
となってしまいます。
計上日は数値型です。
自分としては、日付を入力したら、該当する物を取ってきてほしいのですが、
selected_dateに値を入力してください: 20111124
旧 3: WHERE 計上日 = '&selected_date'
新 3: WHERE 計上日 = '20111124'
といったよけいな物が出力されます。
何がいけないのでしょうか?
ちゃんとマニュアル読まずに作って卯ところがいけないんじゃないかな
"卯"→"る"
>>788 set verify off
SQL*Plus使い方 - 置換変数 その1
でググれ
default_dateに条件を入力しといて改めてselected_dateに入力させようとしてるところにはつっこまないのか
そもそもちゃんとマニュアル読んでないから
> COLUMN selected_date NEW_VALUE default_date
の使い方を間違ってるだけだろ
その参考サイトの内容もちゃんと読めてないのはそういう癖がついてるからだろう
そこのオーナーさんもがっかりするだろう
SQL Serverで復元&バックアップってあるでしょ
OracleではSQL Plusを使わないと同じことができないんですか?
SQL Plusすごーく、めんどくさく感じるんです
Enterprise Managerでできるけど
それはそれでめんどくさいと思う
>>795 RMAN使いこなせ。
慣れれば別にどうって事ない。
>>795 スナップショットっていう便利な機能があってだな
>>797 今までRMANを使っている現場を見たことがない
俺のなかでは都市伝説
うちもRMANは使ってないな。
データ量が多いので、非常に時間が掛かってしまうから、
ストレージのバックアップ機能を使っている。
RMANではcross checkしてアーカイブログの削除やってるくらいかな。
あ、障害復旧時には勿論使うけどね。
RMAN使うけど、直接使うことがほとんどないな。
バックアップソフトと連携させてオンラインバックアップをするためだけに使ってる。
コールドバックアップしか使わないDBなら、RMAN連携なんて全く必要ないし。
11.2.0.3からスナップショットデフォで使えるからアップグレードするかな
ここでいうスナップショットって、何のスナップショットのこと?
スナップショット制御ファイル?
フラッシュバックデータベースとは、別物の機能?
ORACLEがメモリを2G以上使ってしまってよく落ちるんです。(10g、2003サーバー、32bit)
こうゆうとき、まず何をすればよいでしょう?
メモリを食いつぶしているセッションの調べ方とかサッパリわかりません。
oracleエンタープライズマネージャーでセッションを見てもSQLは出てくるけど、負荷までわからなくて。
セッション情報見ても、イマイチ必要な情報は得られないかもな
まずはAWRレポートを見る、かな
AWRレポートを見ると、メモリ食ってるSQLやプログラムも分かる
そいつが分かったら、そのSQLを実行させてるプログラムの開発元に何とかさせる、
じゃないかな
>>806 取り敢えず、sga_targetとpga_aggregate_targetの設定値を調べろ。
後は、同時接続セッション数はどれくらい?
落ちるって言ってるのは、正確にはどういう状態?その時にアラートログに出るエラー番号は?
あと、AWRレポートは、EEオプションなので、ライセンス買ってないなら、STATSPACKインストールして使うべし。
>>806 そのマシン、物理メモリはいくつ積んでるの?
>>806 4GB以上のメモリー積んでるのならboot.iniに/pae追加してて4GTサポートを有効にする事をお勧めする。
PAEを設定したからといってOracleのプロセスが2GB以上のメモリを扱えるわけじゃないよね
データベースエンジニアのキャリアを教えてくれ
25歳でSIのDB構築部隊へ
28歳で構築部隊リーダーに
29歳で中小企業の社内DBAに
30歳でまったり社内DBA継続中
この先どうなるんだおれ。
大手とか外資に行かないと給与あがらんのかな。。。
自分の進むべき道は自分で開拓しろ
オラクルマスターブロンズの参考書(黒本)はリファレンス本としても使えますか?
SQLServerの試験対策本は割とリファレンスとして使えるので愛用しているのですが・・
>>816 COALESCEとか(+)とか書式の指定とか、滅多に使わないから覚えてらんないことを
参照するために役に立つ
>814
自分で仕事している間は大して給料上がらんとだけ言っておく
Oracle11gr2でASM/Rman利用してない
<storageに配置>
Datafile
redolog
archivelog
controlfile
<server localに配置>
spfile
pfile
こんな構成でServerクラッシュした場合、復旧出来ますか?
出来る場合、最短どれくらいの時間かかりますか?
(DR環境、Staging環境などなし)
>>820 つまりspfile、pfileのバックアップは存在せず全滅ってこと?
>>820 storageが無傷で残っているなら、
pfile作ってcontrolfileだけちゃんと書けばインスタンス起動する。
起動したらAWRのレポート1個出せば元の初期化パラメータを吸い出せるから
pfile手直ししてCREATE SPFILE FROM PFILEしてインスタンス再起動。
・壊れたサーバの代替機を手配 (サーバの保守契約次第)
・サーバのラッキング、配線など (1時間)
・OS、Oracleなどインストール (半日)
・上記の手順でpfile、spfileを復旧 (10分ぐらい)
今時、結合を (+) なんて書く馬鹿はいないだろ
>>823 ありがとうございます。
では別のORACLEがインストールされているサーバでpfileを作成すればインスタンスを上げられるのですね。
ホスト名、IPとかって問題ないのでしょうか。
>>825 ホスト名とipをどうしようとしてるんだ?
>>825 > では別のORACLEがインストールされているサーバでpfileを作成すれば
> インスタンスを上げられるのですね。
いいえ。
同じホスト名とIPアドレスにしてください。
どうしても別のホスト名とIPアドレスにしたかったら
保守契約をしてKROWN 17396を読んでください。
>>825 同じじゃないと、oracle*net の構成を全アプリサーバでしないといけなくなるな。
GRIDはつかてるの?
opatchで、エラーコード74がでた時の対処法を教えてください。
>>829 あー、それか
opatchのバグを直すパッチがあるのだが、当てようにも多分やっぱりopatchがエラー吐くって
詰んでる状態だな
パッチ自体は、自己責任でパッチをバラして置き換えたり事後処理したりといった作業を
手でやれば、当たらなくはない
レポジトリ的にはおかしなことになるし、OUIは使えなくなるが
それが嫌なら、プロダクトの再インストールと最新PSRへのアップデート、パッチ適用を
やり直したほうが、残念だが確実
レスありがとうございます。
さんこうにさせていただきます。
>>817 >>819 ありがとうございます。
今度初めてオラクルの業務をすることになり結局買いました。
たしかにマニュアル最強は言わずもがなかもしれませんが、ワンクッションで黒本も持ってて損はなさそうですし、
これを機会に勉強しようかとも思います。
>>832 まぁぶっちゃけネットで調べれば全て解決するんだがな。。。
プログラミング苦手だったからOracle関連の部署配属になったとき不安でしょうがなかったわ
おれなんてプログラミングしたことないけど
>>829 Metalinkから最新のOPatchをダウソして再実行。
OPatchは基本的にunzipすれば使える様になっている。
838 :
829:2011/12/02(金) 07:53:12.58 ID:???
回答ありがとうございます。
参考にさせていたがきます。
839 :
829:2011/12/02(金) 14:40:04.48 ID:???
oci.dllが邪魔して、opatchが74エラーを出してましたが
dllhost.exeをkillしたら、いけました。
>>1にも書いているけど、質問する時にはO/Sのプラットフォーム
ぐらい書いてくれよな。
Oracleに限った質問じゃないんですが、
システムが異なる、例えば生産システムと販売システムがあって、
それぞれデータベースユーザも、制作管理している人も異なる場合、
商品ロット情報のやり取り(生産→販売)をどうやるべきですか?
生産システムも販売システムもなるべく互いのシステムに事情に縛られず、
当然不整合も起こらない(起こってもすぐに気づけて人力でリカバリ可能ならOK)
という条件の場合です。
どのようなインターフェイス設計がふさわしいのでしょうか?
SOA
DBの話でもないような。
いきなり設計なんて訊いているけど、そもそもその2つのシステムはどう
作られていて現在はそのやりとりがどう行われているのか、そしてその
どこをどうシステム化したいのか、というところから考えてみるべきだな。
>>843 単に生産側がロットデータをもとに、販売側の商品データを作る(移動)だけです。
移動したらロットデータを消します。
現在は、データベースリンクで相手のテーブルにレコードベタベタ触って
直接書き込み、自分を削除してcommitしている状態です。絶対に不整合起きませんから。
ひとときは販売側による外出しインターフェイスを作って、
それを生産が叩くことでデータを渡すようなことをしていました。
その入口というのがWebのCGIで、URLを叩く(データはPOSTで渡す)という感じだったのですが、
でも、如何せん遅いのと転送失敗時にデータがだぶるor消え去る可能性もあり、
結局直接書き込みに戻した感じ。
こういう場合の、定式って無いんですかね?
固定長のTEXTファイルに吐き出して、それを取り込めばええやん。
どっちにしても完全にスレチ
>>844 今動いていてそれで問題ないんであれば、何を聞きたいんだろう?
一般的な定式というなら、どんな手段をとろうともまずは情物一致。これが基本。
やりかたはいろいろあるし、場合によっちゃあ生産システムで出力した紙(伝票)を
販売(在庫管理)システムで入力するなんてやり方もあるぞ。
>>846 前半はまともなこと言ってるのに後半は無茶苦茶だな
いや、そんなに滅茶苦茶な話でもないよ。
以前に2つの異なるシステム間でデータ連携するのに、片方のシステムがロー
ル紙に伝票データを印刷して、もう片方のシステムがそれをOCRで読み取っ
て取り込むっていう方法を作った事がある。
アナログなのかデジタルなのか、わからんな
業務効率的にそんなのがいい場合もあるってことだな
セキュリティの問題じゃない?
紙を咬ませることでネットワークを確実に切り離せるし、どんなファイアーウォールより堅牢だよ?
それか、途中に紙が残ることで改ざん不可能な記録を残すってことを狙ってるかだな。
紙は大げさとしても、
Acceseに全部取り込むとか、Excelで6万行ずつやり取りするとかして、テープやらメールやらで渡す。
というようなことをやってるところは多いような気がする。
外部との接続を遮断されててEXPしたデータを渡すためにDAT使ってるところなら2ヶ所知ってる
ちょっと話はそれるけど、仕入先とのやり取りが全部紙ベースで、本部には
沢山のパンチャーさんがいてものすごい勢いで紙伝票をパンチ打ちしてる、
なんていう大手小売は今でもそれなりに存在するよ。
まあ、普通は電子データ交換に切り替えてると思うけど。
自社は電子化してても取引先が零細企業ばかりで
紙伝票から切り替え不可。
零細企業を生かし続けることが日本の産業の停滞を招いているよな。
何もできねえくせにいきがってんじゃねえよ
なんだそりゃ
ちゃんと説明すると、円高で国際的に見て零細企業の人件費がとてつもなく高すぎるので、もはや高度成長期のような役割は期待できない。
通貨高=弱肉強食社会。
なんとかする方法は一つしかないよね。
つ
次の方、そろそろOracleネタをどうぞ
円高でライセンス料ボロ儲けだよね。
本国への上納金は円で送るんかね
"ALTER TABLE DISABL ALL TRIGGERS" でトリガを無効にしようとしたら
「ORA-00054: リソース・ビジー、NOWAITが指定されていました」が返された
んですが、随時更新がかかるようなテーブルに対して貼られているトリガを
無効にするのはまずいんでしょうか?
データ一貫性に問題が生じる訳でもないし、トリガ無効化でORA-00054になる
のはちょっと解せないのでっすが。
ALTER TABLE自体そんなもんだった気がする。
CREATE INDEXも同じ。
あまり気にせず成功するまでリトライし続けたなあ
>>865 テーブルをexclusiveでロック取った直後やるとか。あれはnowait入れないからひたすら待つよ。
あとデータ一貫性に関係あるよ。トランザクションの途中でトリガーされるのとされないのがあるとおかしいでしょ?
869 :
NAME IS NULL:2011/12/07(水) 11:44:23.44 ID:zOQH735W
vb.net2010と接続して勉強しようと思っているんですが
用語の区別がつきませんでした。
ODE.NET
ODP.NET
ODT.NET
ODP.NETというのは、OracleとVBを接続するケーブル的なものだと理解したんですけど
それ以外がよくわかりません。
教えてください。。。
872 :
NAME IS NULL:2011/12/08(木) 09:35:57.98 ID:qKNAhtVb
>>870 参考にさせてもらいます。ありがとう〜!
873 :
NAME IS NULL:2011/12/11(日) 21:51:46.26 ID:JBMuL0Fg
DB本体がOracle9iになっていて、
window7のPCにOracle11のクライアントをインストールして、
DB接続をすることはできますか?
┌─┐
|. ● l
├─┘
_\レ'_
/_____\
/__ 愛●国_\ はい、できません
/ ィ赱、i_i_r赱ミ\
| ィ'。_。ヽ ) ___________
\ / _lj_ } ,/ j゙~~| | | |
__/ 、{ ^' ='= '^' \ |__| | | |
| | / , \n|| | | |
| | / / r. ( こ) | | |
| | | ⌒ ーnnn |\ (⊆ソ .|_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二 _|_|__|_
え、俺は出来てるよ?
876 :
NAME IS NULL:2011/12/12(月) 00:43:12.96 ID:H7CkkP9B
OSがWindows7 home editionなんですけど
Oracle11gをインストールすることはできないんでしょうか
対応してないというか、”動作を保証しません”ということらしいのですが
セットアップの途中で終了してしまいます・・・
home editionは基本機能が足りなくて動作しない
98SEとかだと使え使えてた気がするな
今はむりぽ
おねがいします
Oracle11gR2 on Win2008r2です
インストールをスタンダードone、単位インスタンスデータベースですおこないました
その後、dbcaを立ち上げインスタンスAを作成しました。dbcaの途中で
oemを構成するようにしました
インスタンスAの作成後、再度dbcaを起動しインスタンスbを作成しましたこちらもoemありです
インスタンスそれぞれにsqlplusで接続可能
oemにポート1158、5500で接続可能なことを確認して
再起動するとWinのネットワークが接続できなくなりました
具体的にいうと、タスクトレイのネットワーク接続状態を示すアイコンをダブルクリックしても反応がなく,
ネットワークサービスのいくつかもなかなか起動しません
15分程度待つとネットワークが上がってきます
いくつか切り分けを行うと
インスタンスbにoemを構成すると
上記のような状態になります
複数インスタンスを構成し
かつ双方にoemを使用したいのですが
何か特別な手段が必要なのでしょうか
よろしくお願いします。
インスタンスごとにEMのポート変えなきゃならんのだが、DBCAでできたっけ?
>>879 2番目のインスタンスのdbconsoleのポート変更だろうな。
emca -reconfig ports -DBCONTROL_HTTP_PORT XXXX -AGENT_PORT XXXX -RMI_PORT XXXX -JMS_PORT XXXX
DBCONTROL_HTTP_PORTのレンジは5500から5519
AGENT_PORTのレンジは1830から1849
RMI_PORTのレンジは5520から5539
JMS_PORTのレンジは5540から5559
変えるとしたらんな感じか?
emca -reconfig ports -DBCONTROL_HTTP_PORT 5510 -AGENT_PORT 1840 -RMI_PORT 5530 -JMS_PORT 5550
$ORACLE_HOME/install/portlist.iniに今使われているポートがあるから、被らないように変更してみたら?
>>879 dbconsleのサービス自動起動設定は有効になってる?
なってるなら、手動にしてos起動後にあげてみたら?
883 :
879:2011/12/18(日) 00:54:44.62 ID:???
レスありがとうございます。
結論から申し上げますと、切り分けが足りませんでした。
申し訳ありません。
1日中、サービスをとめたり、遅延軌道かけたり組み合わせを替え
再起動させまくったら、
「Windows FTP Service」が有効である状態で「マルチインスタンス(ごめんなさい、em関係なかったです)」且つ
「鯖ベンダ独自の監視ツール(RAID関係の監視ユーティリティーとか)」および「Oracle ホニャララサービス」が、遅延無く起動する設定だと
Windowsのネットワークサービスのいくつかが死ぬということまでは特定できました。
「OSで自動起動するサービスのうち、Windowsシステムサービスで無いもの(含むOracle)」+「Win FTP サービス」に起動遅延をかけると
問題なくあがってくることが確認できました。
なお、ポート重複に関してはありませんでした。
具体的に「どのサービスが、いかような原因でこの問題を引き起こすのか?」という部分の特定には
至っておりませんが、現状としては上のとおりです。
以上、ご報告までに。
Windows版のOracleがまともに自動起動できないことが多いのは昔からの伝統
Windowsのサービスを理解してない人達が作ってるからだろう
Oracle8iだとサービス停止=インスタンス不正終了という凄まじい罠があったな。
今は直ってるのかな?
いまだにユーザやディレクトリ決め打ちのスクリプトを同梱しているのをみると、
連中はUNIX系OSについても理解できてなさそうな気がするな
常に新人の仕事なんだろう
そして伝統を受け継ぐよう厳しく指導される
パッチで修正されたはずのバグが次のバージョンで復活するという謎も何度かあったな
デグレードってやつで一番信用失くす行為です。
圧倒的な力の前には信用などごみも同然
力ねぇ
信者を盲信させる力、かねぇ
Linux環境でsqlplusで多数のselect文を流すために外部ファイルに書き出して@で実行しようとしています
この時実行結果だけしか表示されないため実行結果の突き合わせが面倒なのですが、実行したsql文も表示するように出来ますか?
シェルスクリプト化でもした方が良いでしょうか?
>>893 sqlplus set echoでggr
>>893 set echo on;
set time on;
set timing on;
set define off;
大体これぐらい入れて実行すると情報としては十分だろうな。
NUMBER(1) で定義されたフィールドを WHERE 句で使うと見事に検索対象から外れるのは既知バグでしょうか?
CommandText = "SELECT COUNT(*) FROM HAGE WHERE KUBUN=:KUBUN"
Parameters.AddWithValue(":KUBUN", 1)
こんな風です。
HAGE.KUBUN が NUMBER(2) だと正しく件数を返しますが
NUMBER(1) だとデータが入ってても常に 0 件になります。
System.Data.OracleClient は 10.2 に付いてるやつだと思います。
SQL*Plusでは普通に返ってくるけど?
SQL> create table hoge(hoge number(1), boge number(2));
Table created.
SQL> insert into hoge values (1,1);
1 row created.
SQL> insert into hoge values (2,2);
1 row created.
SQL> commit;
Commit complete.
SQL> select count(*) from hoge where hoge=1;
COUNT(*)
----------
1
一つだけ言っとくが、System.Data.OracleClientはOracleが提供してるやつじゃないからな
cssdやcrsdがはきだすログ(デフォで10世代のやつ)の内容を見ても
サッパリ意味がわからんのだが、やっぱわかるようになったほうがいいのかな?
どうすればわかるようになるのだろう?
>>900 基本は色々とテストしてログの出方を覚えるしかない。
例えば以下のテストを実施して、それでログの出力の傾向を見る。
1. プライベートLANケーブルを外した時。
2. パブリックLANケーブルを外した時。
3. 複数NICの片側を外した時。
4. サーバーの片側を強制リブートかけた時。
5. 片側インスタンスをAbortで落とした時。
6. 片側インスタンスのpmonなどの重要プロセスをKillして落とした時。
cssdやcrsdがどうやってスプリットブレインを解決しているかが何となく分かる。
例えばベンダー製のクラスターウェアが入っていると、そっちに解決を任せる
ためにWaitがかかったりとか。
903 :
NAME IS NULL:2011/12/27(火) 13:55:28.69 ID:pzaCgyvw
Oracle環境で良く使われるアプリケーションの言語ってなに?
OracleDBAを目指してるんだけどついでにプログラミングも勉強しようと思って。
ついでなら一番Oracleを使う言語がいいなと。
COBOL
905 :
NAME IS NULL:2011/12/27(火) 17:11:14.12 ID:pzaCgyvw
Oracle環境で良く使われる言語だよね?COBOLじゃないの?
金融とか物流の古いシステムは未だにCOBOLが現役というか
何十億行のプログラムの変更なんてできないからこれからも必要とされていく
そういうシステムのデータベースを担当しているのはOracleだよ
907 :
NAME IS NULL:2011/12/27(火) 18:06:18.53 ID:3bBfdyZf
Javaか.netでオッケー
PL/SQLは趣味の範囲で
Pro*Cとかいうのもあったな。
最近どうなのあれ?
>>908 Pro*Cじゃないとできないというのも殆どないし生産性悪すぎるから絶滅寸前
昔の資産をそのまま使ってるところだけじゃないかな
新規のモジュールをPro*Cでっていう声は最近聞かなくなった
>>898 >>899 SQL*PLUS だと正常です
System.Data,OracleClient.OracleCommand.Parameters() 使用時のみに起きてる問題です。
とりあえず NUMBER(2) でやり過ごしてます。
Javaで書かれたバッチは全部PL/SQLで書き直したい。
オンライン系だと後ろのDBが何か?とかむしろうまく隠蔽されるから、Oracle
云々は全く気にせず.NETとかJavaでいいと思うけど、バッチ処理なら素直に
PL/SQL一択じゃね?
PHPはDBとの親和性(?)がいいと聞くのだが、実際どうなのだろう?
今の現場のバッチ処理はCOBOLだけど、
PL/SQLに焼き直したい。
固定長のファイルで処理してるから、
桁数増やすとか、項目増やすのが面倒すぎるw
そして、画面のPL/SQLを他の言語にしてほしい…。
>>910 とりあえず自宅のFramework2.0の環境で試してみたけど正常にとってこれた
VisualStudioやらFrameworkやらをちゃんとUpdateかけてるのか確認してから
Microsoft系の掲示板を探してそっちで訊いてみたらどうかな
Oracle互換で低価格謳ってるTiberoってどうなの?
よくあのボラクルに喧嘩を売る気になるなぁ
余程強力な法務部隊を抱えてるのか
クラッシュして初めてわかるOracleのありがたさ。
NoSQLなやつらは所詮消えてもいいデータを扱ってるのさ。
韓国製だからだろうけどTiberoって韓国では実績あるみたいだな
既に金融系とか官公系の事例があって驚くわ
>>906 コボラーにDB設計をさせると、とんでも無いものが出来上がる。
コボラーはRDBMSの基本が解って無いという印象があるなぁ。
>>919 こういう意見はちょくちょく見かけるけど実際にはコボラーがDB設計してるの見たことないし
とんでもないDB作ってる人はCOBOLと関係ない
つまりコボラーに恨みを持つ者の犯行か
そうなんかぁ?
COBOL系のシステムを見た時があったのだが、テーブルが正規化していないわ列の項目名が連番になってるわで酷かったわ。
SQLの規約も、テーブル結合は3つまでとかさ・・・。
まぁ、コボラーが作ったわけではないかもしれんが、
COBOL系のシステムはRDBMSをありえない使い方をしてる気がする。
うん、なんていうか、とりあえず君が馬鹿なのはよく分かったから。
世間のCOBOLerを馬鹿にする前に、まず自分の馬鹿さをどうにかしようよ。
遥か昔に階層型で設計されたものをそのまんまRDBMSに載せようと
したりするからな。
正規化なんか当然されていないし、重複表がありまくり。
正規化する事が悪と信じて疑わない奴らが上にいると、老害以外の
なにものでもない。
NDBをそのまま持ってくるとそうなるな
正規化しないで高速化とか手動JOINとか最近のKVSの発想に近い
正規化しないほうがデータ発生時の状態がわかったり
1レコードで済むから処理が楽だったり
データのリカバリがし易かったりするから
最近崩すことが多いな
solaris+COBOL+oracleですが何か?
ProCOBOLですが何か?
meftでボトペタでクラサバですが何か?
帳票作るの楽すぎ
.net?
Java?
貧乏人は黙ってろや
老兵去るべし!
oracle とCOBOLの全盛期は重ならない。
ボケCOBOLERはファイルに書いておればよい
なんで今更COBOL批判なわけ?
COBOL系のシステムとか意味分からんけど昔からの資産を無駄な費用かけずに
維持しようというのは至極当然だろうに
なんで余計な金使ってまでアホに新しいシステム作ってもらわないといかんの?
つーかお前らって、年越しCPUスピンのバグ、放置かよ?
>>931 おまに任せとけば大丈夫だって聞いたからな
このタイミングでRACの片方死ぬとか呪われてるんなw
>>931 CPUって、Critical Patch Updateのことか?
何かあったん?
ちょっと調べたけど見当たらなかった
年明けからしばらく携帯の電源切ってていいですか
いいよ
937 :
NAME IS NULL:2012/01/01(日) 00:33:57.77 ID:3N9Kd99w
うちのDB逝ったわ。障害対応なう
Redoログファイルとデータファイル全損の場合ってどうすれば良いですか。。。
バックアップ方法とリカバリポイントが不明なので何とも最良かは判断しにくいが、バックアップを戻して、有るだけのアーカイブを適用してreset logsでオープンだな
>>941 バックアップ運用を行なっていた?
それでも不完全リカバリしか無いな。
完全なデータ復旧は無理。
さっさとリストアとリカバリして終了だろそんな案件
といいつつ、過去の経緯だの、一秒たりとも止めるなとかいう要件を引きずって
数年前にフルバックアップを取って以来、運用開始後の数年・十数年間ずっと
アーカイブログのバックアップしかしてないって案件の、
>>941みたいな状況の
レスキューを何度も担当したことがあるが、大抵、外部要因でうまく戻せないね
ある時は頼みの最終のフルバックアップがなぜか戻せず、ある時はアーカイブログが
当たらず(←これはOracleのバグで、USにカチこんで1日で直させた。ちなみに11gで
PSRにもまだ入ってないw)、ある時は障害時までリカバリしたらAP的に都合が悪いとかで
どこまでリカバリしたらよいかの客の会議で3日待ったりした
ぶっちゃけ、24時間ノンストップとか、変な教えだけが広まってるよなOracle信者にはさ
一つのアーカイブログの途中地点まで戻すとか出来ますか?
>>945 回復したい基準点(時刻またはSCN)が事前に分かっていれば可能
詳細はマニュアルにてRECOVER文のUNTIL句を参照
データベースの知識がないけどBronzeに向けて勉強したい。
11g SQL基礎I とBronze SQL基礎Iの2つがあるけど
11g SQL基礎Iやったほうが役に立つ?
Bronze DBA11g(1Z0-018)も取らないと駄目とか難しそう。
>>947 資格板のほうがいいと思う。
11gは受けたことないけど、10gはゴールドまで簡単だったよ。
>>941 バックアッブが正しく取られているのなら、最終のアーカイブログ適用までは
普通に戻せる。
DRだと基本的にその手順になる。
全損しないように物理的に分けて多重化する、
全損しても困らないようにバックアップを取る
全損した時のために復旧ポイントを客に決めさせて、
リストアリカバリ手順をオペレーターに叩き込んどく
>>944 >ある時はアーカイブログが当たらず(←これはOracleのバグ
マジかよ・・・・
((((;゚Д゚))))
>>951 そこかよ
>PSRにもまだ入ってない
ここにつっこめ
一度に未コミットのトランザクションが概ね5個以上走っているという、一般的にはあり得ない状況の
運用下でのアーカイブログをリカバリに用いるのでなければ、その問題は顕在化しないよ
>>952 それもそうだけど、REDOログの出力なんて十分に枯れた技術だろ。
なんでまだそんな問題が存在するんだよ!と思うわけだよ。
>>953 >一般的にはあり得ない
未コミットのトランザクションが同時に5本以上走るなんて、十分にあり得る話だろw
Enterprise環境で使うOracleはそういうもんだろw
>一般的にはあり得ない
おれもこれは珍しいことじゃないように思うが何か言い足りないことがあるんじゃないのか
一応サポートからの情報は許可なく公開しちゃマズイしな
Oracle得意のデグレードかエンバグか、そんなところだろう
ついでに最後の最後にゃ、クソどうしようもない事を普通に言い出してケツをまくりやがるからな
おれは4社のDBを破壊し、DBAという職を諦めた。最後はORACLEだったよ
おまえの職業はクラッシャーだったんだよ
>>957 むしろDB壊れてからがBDAの仕事なんだがな。
>>959 『壊れた』 んじゃなくて、『壊した』 からだろ。
BDAにもつっこんでやれよ
「今日からSEです。よろしく。」
あ、はい。
SEが「サービスエンジニア」だと本気で思ってる客先とうちのマネジャー
だから土日祝日、深夜の対応も当たり前だと思われてる。
ところで2号機のOracle死んだのは直ったんですかね?
965 :
NAME IS NULL:2012/01/08(日) 00:27:10.14 ID:EzDLLX8S
DBAとして毎日DBの負荷状況を確認してる?
なにかいい監視レポート用スクリプトとかないかな。
OS:RHEL5.3
DB:Oracle10.2.0.4と11.2.0.2
>>965 V$ビューから取得する手作りのスクリプト。
笑われるかもしれなけど、それをcronで仕掛けてる。
>>965 今まで担当した客先の中では自作スクリプトで運用するのが多かったな
ググったら内容をある程度公開してくれてるのも見つかるじゃん
OEMから毎日チェックしてるの?
具体的にどんなところを注意して見てる?
チェック箇所の順番とか
ホントにDBA?
すいません、オラクレとか初心者でよく分かってないんですけど、DBの負荷
って具体的に何をさすんですか?CPUのロードアベレージ?DISCのIO?
でもそれってどっちもDB外の要因も絡んできますよね?
>>972 >DB外の要因も絡んできますよね?
勿論。
それを立証するのもDBAの役目かと。
DBチームは何人体制?
うちは7人。
Oracleが約30台
SQLServerが約90台
人数が多い気がする。
>>972 Diagnostic Packライセンス買ってるなら、AWRレポートでdbの負荷は判断できる。
ライセンスないなら、stactspack。
トラブルシュートするなら、ASH的な情報拾える自作スクリプトがあった方がよい。
ただ、こういう性能評価的なのは、毎日やるもんでもなく、月次または、トラブル発生時とかでやるイメージだな。
常時監視目的なら、cpuとかのリソースを、スクリプトないし監視ソフトで監視して、閾値超えたら、アラートあげてくれるように自動化してる。
oracle的なもんで言えば、表領域使用率とか同時接続数とかの監視も自動化してるな。
表領域使用率は90%を超えたら警告が出るようになってるけど、常時93〜95%
位なんで警告出すぎ。
んで、開発に向かって「とっとと過去データ退避させろ」と命令するのがDBA
の仕事。
刺身にたんぽぽを乗せる仕事みたいだな
なるべく自動化して省力化しつつ、
外部に向かっては「こんなに高度なスキルが必要なんだ」
と思わせるのが仕事のコツな。
ワシは暇な時は自動化した分析スクリプトを書きためておる。
チョーカッコイイ
11gの開発の際にサクラエディタのsql plusで実行をよく使うのですが、
sqlpluswは10gしか入っていないのですか?
sqlpluswのためだけに10gを入れるのは、ディスクリソースが無駄になっていると思うので
なんかいろいろ間違っている
うちのDBは週に3回くらい落ちるんだけどどうすりゃいいんだ。。。コンサルいれるしかないのかな。。。
>>980 11gから廃止されてるよ
OracleはWindowsのアプリを作るのは苦手だしsqlplusw.exe固有のバグとかあったりして
もう面倒になったんじゃないかな
sqlplus.exeは使い勝手が違うだけで機能的な差は僅かだから乗り換えをお勧めする
>>982 このスレはエスパーが居るからそこのDBが何回も落ちる原因を特定できると思うので
しばらく待っててね
985 :
980:2012/01/08(日) 21:43:02.41 ID:???
>>981 マジですか
>>983 oracleでpackageを作る際に何をご利用されていますか?
サクラエディタだとsqlplusよりもsqlpluswとの相性がいい気がするので、
11gの開発なのに未だにsqlpluswを使っています
sql developerで作れ
金に余裕があるならPLSQL Developerマジお勧め。
つーかこれに慣れると、これが無いと開発出来ない体になるけど。
sql developerは無料&高機能でいいんだけどちょっと重すぎ。
ただOracle Clientがインスコされてないマシンでも動くので、その点は重宝する。
Object Browserのすごい古いバージョンをいまだに使ってる
まあ客が8iからアップグレードしてくれないからなんだけど
肝心のsqlplusの出来があまりよくないからな
補完、ヒストリ、スクリーンエディット、いまだに無し
なんだこの時代遅れはよ
うん、補完は欲しいな
あとキーワードのハイライトも
エディタは外部エディタ使えばいいじゃない
SQLPLUSはバッチ処理用と思ってるんで
今のままシンプルでいい。つーか仕様変えるなw
linuxとかのunix系のOSで使用するSQLPlusは使い難い。
↑↓押下で以前に実行したコマンドを表示してほしいんだけど。
SqlPlusはHELPのカタログをわざわざインスコしなくても済むようにしてくれるだけでいい