Oracle 質問総合スレ3at DB
Oracle 質問総合スレ3 - 暇つぶし2ch354:NAME IS NULL
09/02/17 00:40:47
>>352
コミットしてみ。

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

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

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

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

こんな感じでした…

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


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

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

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

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

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

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

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

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

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

365:NAME IS NULL
09/02/21 21:46:27

素人はお前じゃボケ

366:NAME IS NULL
09/02/21 21:57:41
いいや俺だね

367:NAME IS NULL
09/02/21 23:47:26
>>360

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

>>362

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


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

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

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

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

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

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

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

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

370:NAME IS NULL
09/02/22 01:38:47
親切

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

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

373:NAME IS NULL
09/02/23 22:06:07
質問させて頂きたく。

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

>質問2
関連無い。

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

>ググりながら勉強してるんですが
大間違い。
URLリンク(otndnld.oracle.co.jp)

379:NAME IS NULL
09/02/26 01:51:11
373で質問したものです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

>>383
この辺で幸せになれる?
URLリンク(otndnld.oracle.co.jp)

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

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

387:NAME IS NULL
09/02/27 00:53:17 5E5n6s7G
Exadataってどうなのよ?

388:NAME IS NULL
09/02/27 06:49:34
URLリンク(otndnld.oracle.co.jp)

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

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

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

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


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

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

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

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

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

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

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

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

393:NAME IS NULL
09/02/27 14:46:56
>384

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

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

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


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

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

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


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

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

398:NAME IS NULL
09/02/28 04:17:35
>>397
OK

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

URLリンク(www.istudy.ne.jp)
iStudy for Oracle Master Bronze DBA 11g DL版
標準価格: \12,600
iStudy for Oracle Master Bronze 11g SQL基礎 I DL版
標準価格: \12,600


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

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

何を今更

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

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

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

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

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

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

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

408:NAME IS NULL
09/03/02 02:14:13
100万件程度ならMySQLだろうね

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

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

410:NAME IS NULL
09/03/02 12:04:35
>>405

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

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

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

413:NAME IS NULL
09/03/03 20:35:38 o+hGzJeW
>>411
URLリンク(www.oracle.com)
です。
サーバのOS、Javaのバージョンにより異なるけど、
あなたが知りたいことは、結果的には、たぶんこれ。
Oracle 9i (9.2.0.8+)
Oracle 10g (10.1.0.5+)
Oracle 10g (10.2.0.2+)
Oracle 11g (11.1.0.6+)


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

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

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

URLリンク(otndnld.oracle.co.jp)
Oracle Databaseのポート番号の管理

415:NAME IS NULL
09/03/04 07:59:02
11gってもうx.6まで出てるのかw

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

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

418:NAME IS NULL
09/03/04 11:14:05
>>417

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


419:417
09/03/04 13:21:00
バージョンは10gR1です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

URLリンク(itpro.nikkeibp.co.jp)
【 ulimit 】 コマンドに割り当てる資源を制限する

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


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

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

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

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

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

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

429:NAME IS NULL
09/03/07 02:46:12
>>419

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

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




430:NAME IS NULL
09/03/07 02:49:08
>>421

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

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

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

433:NAME IS NULL
09/03/09 11:21:16
ハイハイ、ワロスワロス

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

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

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

Oracleのバージョンは10.1.0です

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

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

R2 だと asmcmd があるけどね。

R1 はこんな感じか。

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


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

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

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

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


439:NAME IS NULL
09/03/11 22:16:31
>>434

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



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


441:NAME IS NULL
09/03/12 00:17:14
>>440

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


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

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


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


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

445:NAME IS NULL
09/03/13 12:33:08
#!/usr/bin/ksh
RSC_KEY=$1
QSTAT=-u
AWK=/usr/xpg4/bin/awk

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

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

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

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

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

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

449:NAME IS NULL
09/03/14 10:25:54
>>447-448

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

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


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

451:NAME IS NULL
09/03/14 14:22:43
なんだか他力本願なヤツが増えてるな。

452:NAME IS NULL
09/03/14 14:41:47
他力本願の意味わかってるか。

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

454:NAME IS NULL
09/03/14 18:48:56
>>453

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

バカは黙っとれ。


455:NAME IS NULL
09/03/14 18:51:30
>>453

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

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

457:NAME IS NULL
09/03/14 19:01:13
下手に宗教用語使うからじゃないの

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

471:NAME IS NULL
09/03/20 10:02:49 RBnEHUMv
>>468

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

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

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


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

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

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

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

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

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

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

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

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

475:NAME IS NULL
09/03/22 18:29:55
474さん ありがとうございます。

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

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

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

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

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


477:NAME IS NULL
09/03/23 12:59:46
>>476
ッアッーーー!!

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

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

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



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

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

480:479
09/03/23 19:17:33
スマン、>>478だったw

481:478
09/03/23 19:38:58
>>480
ドンマイ

482:NAME IS NULL
09/03/23 22:41:19
>>476

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


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

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

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

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

484:NAME IS NULL
09/03/24 03:45:28
>>483

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

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

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

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


486:NAME IS NULL
09/03/24 19:06:00
>>471
>>468です。経験談ありがとうございます。

オイラが信頼するオイラ以上の知識を有する知り合いにも
相談しました。ちなみに、>>471さんと同意見でした。


487:NAME IS NULL
09/03/27 16:52:45
SELECT * FROM TAB;

で出てくる CLUSTERID ってなに?
ググってもこれの解説してるところがない。

488:NAME IS NULL
09/03/27 22:59:51 LUFIdYWI
URLリンク(www.geocities.jp)

489:NAME IS NULL
09/03/28 00:51:00
>>487

TAB自体が下位互換性のために未だに使用できる様になっているけど、
使用は推奨されていない。


490:NAME IS NULL
09/03/28 20:01:59
>>489
ありがとう。これからはALL_TABLES使います。

491:NAME IS NULL
09/03/29 21:41:29 tW/sgpmt
今度10Gで初めてASMでDBを作成してみようと思っているのですが、
大まかな作成の流れを教えて下さい。

DB作成未経験の初心者です、よろしくお願いします。

492:NAME IS NULL
09/03/29 22:11:22
10G じゃなくて 10g な。

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

こんだけ。簡単だよ。





493:NAME IS NULL
09/03/29 22:35:00 tW/sgpmt
>>492
なるほど、それだけでいいんですね。ありがとうございます。

494:NAME IS NULL
09/03/30 02:03:04
10.1と10.2で結構違って面白いよな

495:NAME IS NULL
09/04/01 11:16:41
PL/SQLを使おうとしたのですが
NUMBER型の引数の値を一度NUMBR型の変数に代入し
RETURNにその変数を指定すると
使用不可コードのワーニングが出て困っています。
RETURNの型はNUMBER型です。
引数をそのままRETURNで返すとワーニングは出ません。
何が悪いのでしょうか…
2バイト文字がいけないのかと全て無くしても変わりませんでした。


496:NAME IS NULL
09/04/01 11:55:59
日本語でおながいしまつ

497:NAME IS NULL
09/04/01 21:41:52
>>489
まじで!

はじめてしったわ・・・

498:NAME IS NULL
09/04/02 07:34:24
>>495
本当にそのレベルの処理なら、ここで
PL/SQLのコードを晒しても問題ありません。
公開したくない情報を削って、
晒してください。

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

このスレ住民は、なぜかとても親切なので、
再現性を確認してくれる可能性が高いです。

499:NAME IS NULL
09/04/02 15:58:10
v$asm_disk の各項目の意味とかをまとめて解説してるページってある?
HEADER_STATUSのとりうる値とか、解説がないから
見ても異常かどうか勘でしか判断できない
v$asm_diskgroupなんかもよくわからんよね

500:NAME IS NULL
09/04/02 20:43:48
1 自動ストレージ管理(ASM)の概要
URLリンク(otndnld.oracle.co.jp)
2 ASM用のストレージの準備
URLリンク(otndnld.oracle.co.jp)
3 ASMインスタンスの管理
URLリンク(otndnld.oracle.co.jp)
4 ASMディスク・グループの管理
URLリンク(otndnld.oracle.co.jp)
4ではダメ?



501:NAME IS NULL
09/04/03 01:36:14
>>497

結構有名なんだけどな。
一応ソースな。
URLリンク(download.oracle.com)

502:499
09/04/03 10:47:21
>>500
ありがとう。少し助かりました。

503:NAME IS NULL
09/04/03 16:37:36 q9U6bHad
RAC構成で、 ときどき ORA-01017が出ます。

ずっとパスワードエラーでログインできないなら まだわかるんだけど
ときどき ってのが腑に落ちません。
これって、どっちかの系でユーザがいないってこと?
そんなことってRAC構成でありうるんですか・・・?

504:NAME IS NULL
09/04/03 23:52:18
>>503

エスパーじゃないから、プラットフォームも分からないし、DBのバージョンも知りません。
そんなので答えられると思うんですか?

505:NAME IS NULL
09/04/04 00:33:11
>>504
ありがとうございます。 とりあえず よくあるトラブルではないことと、
OSやバージョンに依存する可能性の高い、そこそこ珍しい現象であること
がわかりました。
バージョンですが、10gの10.1.0.2です。OSはRHEL3です。
RAC構成でASMを使っています。

506:NAME IS NULL
09/04/04 03:35:36
ORACLEの認証には大別して2つの概念、
OS認証と、ORACLEベースの認証があります。
URLリンク(www.microsoft.com)
#Oracle では、Oracle データベースに登録されたユーザー名、
#パスワードを使用した認証が基本であり、OS 認証は推奨されていません。
Microsoftの提灯記事だけど、適切な記述だと思います。
まあ、Oracle7から使っている自分にとっては当たり前なので
そんな些細な事でSQL*Serverを使おうとも思いませんが。

実際、10.1.0では次のような不具合が報告されています。
例:JDBC OCI Driver(Type 2)+OS認証で、ORA-01017発生→10.1.0.4で修正

RHEL3をお使いとの事ですが、OS認証を一度やめてみてはいかがですか?

507:NAME IS NULL
09/04/04 03:36:48
誤:SQL*Server
正:SQL Server


508:NAME IS NULL
09/04/04 09:03:29
OS認証が推奨されていてもORACLEベース認証の方がいいな

509:NAME IS NULL
09/04/04 10:30:08 bkcQQ2Bx
CREATE TABLE Supplier
(
SName CHAR(20),
ItemName CHAR(20),
Price INTEGER,
PRIMARY KEY (SName, ItemName)
);

CREATE TABLE Item
(
ItemName CHAR(20),
Description CHAR(50),
PRIMARY KEY (ItemName),
FOREIGN KEY(ItemName)REFERENCES Supplier(ItemName)
);

CREATE TABLE Customer
(
CName CHAR(20),
Address CHAR(50),
PRIMARY KEY(CName)
);

CREATE TABLE Order
(
CName CHAR(20),
SName CHAR(20),
ItemName CHAR(20),
Qty CHAR(50),
PRIMARY KEY (CName, SName, ItemName),
FOREIGN KEY(CName)REFERENCES Customer(CName),
FOREIGN KEY(SName)REFERENCES Supplier(SName),
FOREIGN KEY(ItemName)REFERENCES Item(ItemName)
);

最後のテーブル名であるorderが使用できないのは分かってるいるのですが。
それ以外のエラーへの対応がわかりません。
分かる方アドバイスください。お願いします。




510:NAME IS NULL
09/04/04 12:09:11
>>505

可能性としてはロードバランサーがトップにあって、片側のRACのパスワードファイルが
正しく設定されていないとかかな。

511:NAME IS NULL
09/04/05 15:21:30 JiS+iut1
すみません、質問があります。
会社から発行されたチケットを使用してテストを受けようと思うのですが、
会社がチケット番号などから自分のテスト結果を参照することは
可能でしょうか?

512:NAME IS NULL
09/04/05 18:25:25
可能

513:NAME IS NULL
09/04/06 00:56:49 A28vG0H2
>>505
URLリンク(otn.oracle.co.jp)


514:503
09/04/06 03:00:44
>>513
すみません。これは全然関係ないです。
>>510
すみません。ロードバランサーは使っていません。
ただ、RACが交互に系を切り替えてるような気はします。
そして片方が正しく設定されていないのだと思います。

>>506
OS認証は使っていないはずですが、前任者が環境構築するときに
片系はOS認証、もう片系はOracle認証なんてことをやっちゃってるかもしれません。
そんなことできるのか知りませんが。

515:NAME IS NULL
09/04/06 19:14:03
>>514
>そして片方が正しく設定されていないのだと思います。

だったら、片側のインスタンスにだけ接続が行くように設定して試してみれば良いやん。
active_instance_count を設定すれば、どちらか片方のインスタンスのみに接続されるようになる。


516:NAME IS NULL
09/04/07 01:19:17
>>514
ちょっとは自分で学ぼうや。

517:NAME IS NULL
09/04/07 10:48:53
>>514

ロードバランサーがなくてもリスナーサイドロードパランシングが使われてるんだろ。
いずれにせよ自分のPCにでも各インスタンスに対するTNSエントリを設定してsysで
繋げてみればいい。
それでどっちかでエラーになるのならパスワードファイルを再作成だな。

518:NAME IS NULL
09/04/07 11:22:08
リスナーサイドロードバランシングw

519:NAME IS NULL
09/04/07 22:25:46
うむ、投稿した後に間違いに気がついたぞ。
まあ、日本語50音直打ちだから許してくれ~い。
欧州、そして今はアメリカでDBAとして働いているが、日本語キーボードはいつも俺と共にあるw
英語101キーボードの配列なんかで仕事が出来るかよ。

520:NAME IS NULL
09/04/08 17:25:28 epT/t44l
アーカイブログのサイズを調べるSQL文って書けるのかな

521:NAME IS NULL
09/04/08 17:48:11
書けますん

522:520
09/04/08 18:02:13
>>521
ありがとうございました。書くことが出来ました。

523:NAME IS NULL
09/04/08 19:59:36
>>522
ッ!?

524:NAME IS NULL
09/04/09 22:13:13
使うテーブル全部にアナライズかけたばかりなんだけど、
ルールベースが採用したインデックスが遅かったので、ヒント句で違うインデックス指定したら早くなったんだけど
俺、オラクルに勝ったと思っていい?

525:NAME IS NULL
09/04/09 22:16:28
analyzeかけたのになんでRBO使ってんの?

526:NAME IS NULL
09/04/09 22:34:40
あ、コストベースの間違いでした

527:NAME IS NULL
09/04/09 22:38:08
もうひとつ質問なんですけど、
SQLサーバのテーブル(中身も)をオラクルに入れたいんだけど、

オラクル⇒オラクルだとIMP,EXPだと思うけど
SQLサーバ⇒オラクルだとどういう方式があります?

528:NAME IS NULL
09/04/10 04:39:58
>>527

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



529:NAME IS NULL
09/04/10 08:21:34 wKOZtIHP
>>528
ぶち込むとか、カッコええ
男の仕事って感じ

530:NAME IS NULL
09/04/10 10:10:39
固定長のテキストファイルを読んで
オラクル10gのテーブルに格納したいのですが
一部の項目がCOBOLのパックになってます
この項目をNUMBER型に格納するのに
一番スマートなやり方教えてください

531:NAME IS NULL
09/04/10 23:19:33
SQL*Loaderの(packed) DECIMALかねぇ?
コボラーじゃないから良くわらんが、分かる人がみれば以下の説明で分かるか?

INTEGER - full-word binary integer (LONG INT in C)
SMALLINT - half-word binary integer (SHORT INT in C)
FLOAT - single-precision floating-point (FLOAT in C)
DOUBLE - double-precision floating-point (DOUBLE in C)
ZONED - a string of decimal digits, one per byte, with the sign
included in the last byte.
(packed) DECIMAL - packed decimal format: two digits per byte, except for the
last byte, which contains a digit and sign.

The equivalent in COBOL is respectively:

INTEGER - S9(9) COMP stored in 4 bytes
SMALLINT - S9(4) COMP 2 bytes
FLOAT - COMP-1 4 bytes
DOUBLE - COMP-2 *** it doesn't work *** 8 bytes
ZONED - S9(x) DISPLAY x being a number
DECIMAL - S9(11) COMP-3

532:NAME IS NULL
09/04/12 23:47:38 XwgobUls
質問です。。。

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

ご教授よろしくお願いします。

533:NAME IS NULL
09/04/13 00:27:22
Oracleのサイトに詳しく説明されているのに、なぜ読まないかな。

アホなのか?


534:NAME IS NULL
09/04/13 05:51:31 QgB5aUsW

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

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

こんなイメージなのですが、
どのようにすればよいのでしょうか。

535:534
09/04/13 16:25:47

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

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

536:NAME IS NULL
09/04/13 22:25:05 919/buMn
アホで~しゅ

537:NAME IS NULL
09/04/14 14:30:04
カラムが200こくらいあってレコード数が50万くらいあるテーブルで
ちょっとカラムの数を半分くらい減らそっかな と思って

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

というクエリーを実行したら、ものすごい時間がかかって全然おわらない
んだけど、これをもっと高速にしたいときはどうしたらいいの?
チェックポイントってのが問題なの?
バックアップはとってあるので、チェックポイントとかどうでもいいんです。

538:NAME IS NULL
09/04/14 20:50:04
>どうしたらいいの?
そういう糞テーブル設計者を呪う。

539:NAME IS NULL
09/04/14 21:08:16 BaBqmTPe
どうせコボラーが設計したテーブルなんだろ。
よくあるよ。


540:NAME IS NULL
09/04/14 21:19:18
>537
遅いのはインデックスの列も削除してるとか、hogeを参照してるセッションがあるとかが原因かもね
カスケードオプションとかの制約とかも中尉。

入れ物を新しく作って入れなおした方が速いかもしれぬ

541:NAME IS NULL
09/04/14 21:23:13 BaBqmTPe
>>537
>DROP (unko101,unko102, ... ,unko200);

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

処理時間はレコード件数ではなく、テーブル容量に依存する。
上記対策を組み合わせれば、かなり早くなるとは思う。


542:NAME IS NULL
09/04/14 21:31:21
50万件程度ならなんとでもできる

と思ったらカラムが200もあんのか!そんなにあるとどのカラムが何に使ってるか把握できんだろ
列削除したら動かなくなるプログラムが出てくるんじゃないか?

543:NAME IS NULL
09/04/14 22:17:04
ありがとうございます。
結局30分ほどほっといてジャンプ読んでたら終わってました。

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

>>539-542
実はこれはほんの序章にしか過ぎなくて、このあとに
1000カラムの100万件が待ち受けてるのでした。(800カラムくらい削る予定)
まさに1000万パワーズです。泣きそうです。
>>541を参考にしてがんばります。

544:NAME IS NULL
09/04/14 22:22:06
>1000カラム
( д)゚ ゚

545:NAME IS NULL
09/04/14 22:57:08
>>543

設計者、汎用機上がりだろ?
カラムが1000とかって、RDBMSで絶対にありえない。

546:NAME IS NULL
09/04/14 22:57:47 BaBqmTPe
>>543
> 1000カラムの100万件

ワロタww

まぁALTER TABLE DROPした方が楽と言えば楽だけど、その場合はテーブル容量が変わらないから注意してね。
実行後にshrinkしとかないと無駄な領域が増えるばかりでなく、フルスキャンした時にパフォーマンスが劣化するよ。


547:NAME IS NULL
09/04/15 00:25:53
銀行系のDBだとそういう基地外カラムがあるとは聞くけど、たいしたもんだ

548:NAME IS NULL
09/04/15 00:47:05
99%、コボラーの犯行だろ。

行連鎖・行移行しまくりなんだろうなぁ。
怖いなぁ。


549:NAME IS NULL
09/04/15 04:06:11
>>527

Oracle Migration Workbench

550:NAME IS NULL
09/04/16 18:39:10 bVm5EM13
CentOS4.5に、Oracle10gを入れようとして、
インストール時に、

Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asiaunx-2
   Passed
All installer requirements met.

というメッセージが出ています。
CentOSは、動作保証対象外のOSだとは思うのですが、インストールする方法はあるんでしょうか?


551:NAME IS NULL
09/04/16 18:51:12
/etc/redhat-release

552:NAME IS NULL
09/04/16 18:54:28
>>550

./runInstaller -ignoreSysPrereqs


553:NAME IS NULL
09/04/16 18:54:42
-ignoreSysPrereqだっけ

554:550
09/04/16 19:21:54 bVm5EM13
ありがごうございます。
./runInstaller -ignoreSysPrereqs
./runInstaller -ignoreSysPrereq
試しましたが、結果は変わりませんでした・・

555:NAME IS NULL
09/04/16 19:51:28
だから、/etc/redhat-releaseをRHEL4のものに書き換えればいい。


556:NAME IS NULL
09/04/16 19:54:49
とりあえず、そこで詰まるヤツにCentOSにオラクル入れるの無理だろ。
おとなしくミラクルでも使っとけ。

557:550
09/04/16 20:36:54 bVm5EM13
お騒がせしてすみません。
結局、インストーラの、iniファイルに手を加えて、
そこのエラーは通しました。

まだ、インストール成功していないのですが・・・、
上からの指示でなければ、違うOSにするんですけど・・・

558:NAME IS NULL
09/04/16 21:43:44
centOSかよ・・・・・

同じ無料LinuxOSだったら、Oracle Enterprise Linux の方が相性が良いのに。


559:NAME IS NULL
09/04/16 22:08:57
>   Passed

なんだ。エラーはそこじゃないな。


560:NAME IS NULL
09/04/16 22:35:02
10g、11g RAC(ASM、OCFS2の両方)で動作確認した事あるよ。
気を付けるとしたら、ちゃんとパッケージが入っている事ぐらいだったか。
それもyum使えば入るしね。


561:NAME IS NULL
09/04/16 23:15:29
>>550

これじゃね?

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


562:NAME IS NULL
09/04/17 06:03:44
>>561

いくらなんでもXでつまづく事はねぇんじゃね?

563:NAME IS NULL
09/04/17 09:13:56
しかし何故その上司はCentOSにオラクルを入れよと命じたのか。
サポートされてないのに。
教育のため??

564:550
09/04/17 19:29:28 kWFhDTER
550です。お騒がせしてすみませんでした。
Linux系の環境をいじった経験がなく、非常に混乱していました。
GUIでインストーラを立ち上げて、インストールすることができました。
皆さん、ありがとうございました。

CentOSにOracleというのは、教育のためというわけではないのですが、
諸事情あって、そういうことになってしまいました(汗)

565:NAME IS NULL
09/04/17 23:55:14
で、原因はなんだったんだ?もしかしてXだったかの・・・?

566:NAME IS NULL
09/04/19 11:04:10 QT17jzFz
911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから



912 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 10:48:51
911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから



913 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 10:49:31
912  名無しさん@お腹いっぱい。 [sage]  2009/04/19(日) 10:48:51  

911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから


914 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 10:57:14
913 名前: 名無しさん@お腹いっぱい。 Mail: sage 投稿日: 2009/04/19(日) 10:49:31
912  名無しさん@お腹いっぱい。 [sage]  2009/04/19(日) 10:48:51  

911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから



915 :名無しさん@お腹いっぱい。 [] :2009/04/19(日) 11:01:50
914 :名無しさん@お腹いっぱい。:2009/04/19(日) 10:57:14
913 名前: 名無しさん@お腹いっぱい。 Mail: sage 投稿日: 2009/04/19(日) 10:49:31
912  名無しさん@お腹いっぱい。 [sage]  2009/04/19(日) 10:48:51  

911 :名無しさん@お腹いっぱい。 [↓] :2009/04/19(日) 07:31:37
757 :名無しさん@お腹いっぱい。:2009/04/19(日) 07:22:25
あなたが馬鹿だから


567:NAME IS NULL
09/04/20 10:09:06
今までSQL Serverしか経験がなく初めてオラクルのDBを使用します。
会社指示で勉強ついでにオラクルマスターの資格も取れればと思いWindows上で環境を作ろうとしています。
オラクルマスターの参考書にバージョン11gの30日分の体験版DVDが同梱されていたのでひとまずそれを使っていればいいかなと予定はしているのですが、
使用期限切れが心配なため、無償で期間制限ない体験版をさがしています。
バージョンは11もしくは10.2のどちらでもかまいませんので教えていただけませんか?
本来会社でライセンス買ってくれればいいんですが実務でなく勉強だけなら買えないといわれたのでこんな状況になってます。

568:NAME IS NULL
09/04/20 11:02:52
つ[Oracle 10g Express Edition] (無償だが体験版に非ず)

569:NAME IS NULL
09/04/20 12:34:59
体験版は体験版に非ず

570:567
09/04/20 13:05:30
返信ありがと。
とりあえずしばらく使えるものがあればいいのでExpress Editionでもいいかと思いました。
制限の具合はこれから確認してみます。

571:NAME IS NULL
09/04/20 20:06:00
>>570
Oracleのサイトに行けば、機能制限が無いインストーラーをダウンできるよ。


572:NAME IS NULL
09/04/20 21:31:24 E/kjbKAy
米Oracleは4月20日(現地時間)、米Sun Microsystemsを買収したと発表した。
金額は1株あたり9.50ドルで買収総額は56億ドルになる見込み。

- Oracle Buys Sun
URLリンク(www.oracle.com)


573:NAME IS NULL
09/04/20 22:23:15
資格目的ではなく、Oracleの勉強をしようと思っています。
OracleDatabaseServerの導入・構築・保守(バックアップ・リカバリ)など一通りできるようになりたいのですが、
オススメの本とかありますか?

574:NAME IS NULL
09/04/20 22:40:30
マニュアル。

575:NAME IS NULL
09/04/20 22:51:37
マニュアルはどこでダウンロードできますか?

576:NAME IS NULL
09/04/20 23:31:10 5HLI7OQp
どこでって・・・・・(汗)



577:NAME IS NULL
09/04/21 02:02:50
>>567

全部とは言わないが、>>2ぐらいは読むと大きなヒントがあるかもな。

578:NAME IS NULL
09/04/21 09:20:40
>>577
30日以上使うつもりの奴に「30日経っても使えるよ」てのはつまり
「バックレてそのまま使えよ」と勧めてるわけ?

579:NAME IS NULL
09/04/21 17:49:57
>>571
一応言っとくと、ライセンスなしで使い続けてると・・

580:550
09/04/21 18:45:13 9X+HJO0M
>>565
最終的には、
Xだったと言えば、Xだったのですが、
PCにハード面の問題があったようで、Xにしたときに画面が真っ暗になってしまい、
混乱してしまった感じです。

581:NAME IS NULL
09/04/21 19:56:08
>>578

URLリンク(www.oracle.com)

日数の制限はないみたいだけど。


582:NAME IS NULL
09/04/21 22:37:53
>>573
大手ベンダのSEをやっています。
ORACLEの導入、構築、保守、バックアップ、リカバリなどについて
後輩には、こんな感じで指導してます。長文すみません。

1)CPU 2GHz以上、メモリ2GB以上、HDD250GB以上のWindowsパソコンを1台用意する。
2)日本および米国のOTNにIDを取得し、複数バージョンのORACLEのインストーラを入手する。
3)VMWareでIDを取得し、VMWare Server Console 1.xを入手する。
4)Windows Server 2003 R2、Linux、Solaris x86等をVirtual Machine(VM)として構成する。
5)VMをコピーしてORACLEをインストール、インスタンス作成といった手順を、気の済むまで繰り返す。
6)入手しても問題なさそうなDMPファイル(デモデータとか)をインポートして動作を確認したり、壊したり、復元したりする。
7)分からない用語があれば、ググって調べる。ダメなら本屋で立ち読みする(巻末の索引を利用する)。
  そのうち「この本は、どうしても欲しい」と思う書籍が出てくるはず。それは仕方ないので買う。

後輩に指導しているポイント:
「英語を無視するな」
「ORACLEのインストーラやパッチを、コレクションしろ」
「ORACLEの基礎的な勉強は家でしろ。待ち時間が多いから、同時にゲーム、音楽、読書、映画」


583:NAME IS NULL
09/04/21 22:42:42
パッチは仕事で扱ってないと手に入らなくね?

584:NAME IS NULL
09/04/21 22:57:39
>>582

どうしようもない馬鹿だな。釣りにしては下手だし。


585:NAME IS NULL
09/04/21 23:09:47
>>582
オラクルやってく上で、英語は大事だが、その他2つは・・
コレクションとかもう意味不ww

586:NAME IS NULL
09/04/21 23:35:02
タメになった

587:NAME IS NULL
09/04/22 00:18:54
ダメになった

588:NAME IS NULL
09/04/22 00:43:01
もうおしまいだ。

589:NAME IS NULL
09/04/22 00:44:22
2番目の指導は問題だな

590:NAME IS NULL
09/04/22 11:20:58
インストーラのコレクションはマジで大事だな。
二度と手に入らないバージョンとかあるし。

591:NAME IS NULL
09/04/22 21:09:58 8oVKJNzM
初心者で質問です。
EMCAでDatabase Controlをセットアップしているのですが、
SYSのパスワードが分かりません
Oracle11gのインストール時にデータベースは作成しませんでした。



592:NAME IS NULL
09/04/22 21:12:23
>>591
( ゚д゚)

(゚д゚)

593:NAME IS NULL
09/04/22 21:53:55
>>591
データベースは作成しませんでした → SYSのパスワードが分かりません

594:NAME IS NULL
09/04/22 22:12:17 8oVKJNzM
データベースを作成しないとSYSのパスワードは作成されないでしょうか?
ソフトウェアのインストールのみ行ったのですが、そこが問題だったのでしょうか?

595:NAME IS NULL
09/04/22 22:27:50
データベースをWebベースのGUIでコントロールするEMをコンフィグするのがemcaです。
データベースがないのにemcaを行う意味が分かりません。

596:NAME IS NULL
09/04/22 22:30:35
Oracle 11g です。
RMANを使ってバックアップ→リストアを行おうとして失敗しました。
コントロールファイルはリストアでき、表領域はリストア出来ませんでした。

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

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

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

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

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

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

よろしくお願いします。

597:NAME IS NULL
09/04/22 22:31:09
超新星現るw
ゆとりの多い世の中やね。

598:597
09/04/22 22:35:20
超新星は>>596のことじゃないからな。
とりあえず一時表領域は再作成しとけ。
元の名前に戻したかったら、別名で作成→元のを削除→元の名前で作成→別名のを削除、でOK

599:NAME IS NULL
09/04/22 22:39:35
一時表領域だったらデータも入ってないんだし、
create tablespace ... reuse でいいんじゃないのかなー



600:NAME IS NULL
09/04/22 23:06:10
>>598 >>599
598さんのやり方で試してみます。

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

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

601:582
09/04/23 07:21:41
仕事でむしゃくしゃしてやった。
酔っ払っていろいろ書いた。後悔はしていない。


602:NAME IS NULL
09/04/23 08:13:19
反省はしとけ

603:NAME IS NULL
09/04/23 10:00:23
>>601
あんたは間違ってない。大丈夫だ。

604:NAME IS NULL
09/04/23 21:11:49 6YaSPAG4
公園で裸になったりもするな

605:NAME IS NULL
09/04/24 18:49:27 7Do46R/a
1つ質問させて下さい。
あるユーザがテーブルに更新を掛けていてそのテーブルを参照されたくない場合、
トランザクションが完了するまでselect文をロックするといった設定は可能なのでしょうか。

もし可能であればその設定の方法と解除の仕方を教えていただけませんでしょうか。

606:NAME IS NULL
09/04/24 20:35:44
他マシンでのリカバリテストをしようと思うんですが
Oracleのバージョン、ディレクトリ構造、SID等が全て一緒だけど
OSが微妙に違う(Windows2003EE(MSCE)→2003SE)場合の
リカバリ時、何か気をつけることがありますか?
DBIDくらいかなと思っているのですが。


元DBのコールドバックアップをコピーしてきて
先DB上でのリカバリです。

607:NAME IS NULL
09/04/24 20:48:23
DBIDなんて、同じマシンのときしか影響しないんじゃなかったかな。

608:NAME IS NULL
09/04/24 21:56:49
>>605
2人目に見せたくないのは、
更新していないレコードを含む全レコードなの?
更新中のレコードだけなの?

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

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

酔っ払っているし、
ORACLE起動したくねーから、よくわかんね。

609:NAME IS NULL
09/04/24 22:40:58
>>606

窓だったら大丈夫じゃね?
注意する点としたら、oradim使ってインスタンス(サービス)作る所ぐらいか?
DBIDも同じで上がるよ。

610:NAME IS NULL
09/04/24 23:14:16
>605

>>608の言うことを試してみればいいよ。
ForUpdateならDML扱いだから、取得しようとする行が先客によってロックかけられていたら、
自分のSELECTは先客がロック解除するまで結果が返ってこない。


611:NAME IS NULL
09/04/25 00:07:40 f+YC/agg
>>608のとおりであれば
返ってこないというか即エラーだな

612:NAME IS NULL
09/04/25 00:19:58
試せばすぐわかることだ。

エラーだったか、砂時計で待ちになったか忘れたけど、こんなことはマルチユーザのシステムでは考慮するのは常識だし
うまくいってる既存のシステム真似ればよいだけの話。

613:NAME IS NULL
09/04/25 00:38:48
>605 です

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

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

完全に手詰まり状態でしたが、ご回答して頂いた皆様ありがとうございました。

614:NAME IS NULL
09/04/25 00:45:21
>613
そりゃ、完全に設計ミスだよ。
自分が設計したのなら、大いに反省すべきだし、
他人が設計したのならそいつに責任全部押し付けてもOKなくらい基本的かつ重要な事。
普通の中規模以上のシステムの設計書ならロックについてなんらか書かれているはず。

615:NAME IS NULL
09/04/25 00:46:45 f+YC/agg
つーかデッドロックじゃなくてただのロックだろ。
デッドロックならどっちかのトランザクションにエラーが返る。

616:NAME IS NULL
09/04/25 01:02:21 uRjQFxsB
>>613
デッドロックとは何かを勉強してね。


>クエリーが戻ってこない現象がselect文で発生しているため
単に処理が重いんじゃないのか?
StatsPackとかSQL詳細レポートとか分析してみたか?


617:NAME IS NULL
09/04/25 01:16:53
アラートログに同様のデットロックが複数回発生しておりました。
ORA-00060:Deadlock detected.

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

ご指摘の通りまったくもって勉強不足でした。出直してきます。

618:NAME IS NULL
09/04/25 01:49:03 v/emdwre
>>366
巨人の育成って坂本みたいな小物や数年でいなくなりそうな中継ぎのこと?

中日は川上岩瀬福留と超一流を育てた実績があるのよ。
残念だけど巨人にこいつら以上の選手を育てる可能性は皆無なのよ。

619:NAME IS NULL
09/04/25 01:51:10
select for updateでnowaitつけずに悲観ロックで設計してんじゃね?
ちなみに今某富士〇が設計しているアプリがあるんだが、そいつが
悲観ロック使っていやがる。
こんなんでパフォーマンス出せという方が無理だろ。


620:NAME IS NULL
09/04/25 02:27:11
>619
それだけの文章からはパフォーマンスが出せない理由は読み取れないだろ
ロックが致命的なボトルネックとなっているなら指摘して直させればいいし。
設計が絶対ならロック以外のところは可能な限りのパフォーマンスを出しているエビデンスを提出すればいい。

621:NAME IS NULL
09/04/25 04:28:13
勿論こんなアホなロジックのアプリ作ってんじゃねぇって指摘してるぜ。
だが奴らは取りあえず納品さえすましちまえばいいってスタンスだから、
全く聞く耳もたねぇけどな。
とりあえず統合テストで問題点浮き彫りにして、直させるつもり。


622:NAME IS NULL
09/04/25 07:40:43
>>605>>613>>617
アレ?質問の内容が変わったよね?
焦点がぼんやりしてるような気がする。
どれか1つについて優先して解決したい旨を示して、質問してね。
個人的には一歩一歩前進すべきだと思う。
いきなりdを質問されても、ズレた回答しちゃうからさ。

a:現在発生したデッドロックを解除したいが方法が分からないので知りたい
b:デッドロックを解除しても、SELECT文がまだ遅いので、SELECT文を見直したい
c:今回デッドロックが発生した原因を確定したい
d:将来的にデッドロックが発生しないように修正したい


623:NAME IS NULL
09/04/25 08:05:57
aよりcが先だろ、と思うかもしれないけど、
ORA-00060が発生した日時には、
トレースファイルも出ているので、ちょっと目を通せば、
cの大体の目星についてピンと来る事が多いです。

624:NAME IS NULL
09/04/25 16:54:12
>>609
試してきますた。
DBIDのセットが必要でした。後は想定通りの手順で
全く問題なかったお。

625:NAME IS NULL
09/04/26 05:12:00
テーブルが分析済みかどうかって、何見ればわかるんだっけ?
あと分析中ってselectとかinsertとかやっちゃっても大丈夫?

626:NAME IS NULL
09/04/26 06:27:11
>>625
xxx_tablesのlast_anaryzedを確認
分析中のsql実行も問題ないけど大量insertしたりしたら
折角の分析結果が 以下略

627:625
09/04/26 06:55:00
>>626
ありがとう。
INSERTとかもちょっとだけしかしませんよ。ちょっとだけ。先っぽだけならセーフ。

628:NAME IS NULL
09/04/26 23:03:15
>>627
何かエロいな。


629:NAME IS NULL
09/04/27 15:56:03 PFrga0Rn
hoge,piyo,fuga はすべてNUMBERで、piyo,fuga がセットでプライマリキー
このほかにカラムが100ぐらいありデータ数は30万ほど というテーブルunkoがあります。
このとき、次のクエリがだいたい10秒くらいかかります:
 SELECT MAX(hoge),COUNT(hoge), MAX(piyo),MIN(piyo) FROM unko;

これを一瞬で終わらせたいんだけど、どういうチューニングをしたらいいの?

単純に、hoge と piyo それぞれにB-TREEインデックスをつけてみたけど
2割程度しか改善されなかった
表を分析させたらむしろ遅くなったという。

630:NAME IS NULL
09/04/27 23:56:11 UtcGIzOX
>>629
count は単純にレコード件数を知りたいだけか?
であれば、count(*) の方が良い。

hoge に not null 制約を付けてないで、count(hoge) をやると、テーブルフルスキャンが発生する可能性大。


631:NAME IS NULL
09/04/27 23:57:36 UtcGIzOX
それか、マテリアライズド・ビューを使えば瞬時に終わるけどな。


632:NAME IS NULL
09/04/28 01:48:05
>>629
ハード更改

633:NAME IS NULL
09/04/28 05:41:22
>>629
hogeとpiyoにb-treeをつけたのなら、個別にやったら速くなってない?
select max(hoge) from unko;
select count(hoge) from unko; -- これは遅いかも
select max(piyo) from unko;
select min(piyo) from unko;


634:NAME IS NULL
09/04/28 14:23:57 VWUlZDrL
インデックスってみんなどんな名前にしてる?

635:629
09/04/28 14:52:31
>>633
SELECT MAX(hoge) FROM unko;
SELECT COUNT(*), MAX(piyo),MIN(piyo) FROM unko;
の2行に分けたら一瞬でおわるようになりました。

なんか、Oracleってあんまり賢くないんだね。これから気をつけます。

636:NAME IS NULL
09/04/28 15:16:22
Oracleが賢いと言うつもりはないけど、
最初のクエリを一瞬で処理できる製品は見たことないです

637:NAME IS NULL
09/04/28 15:19:02
>SELECT COUNT(*)
こそっと書き換えてるじゃねぇかw
これが原因だろw


638:629
09/04/28 15:59:39
>>637
いやまあそうなんだけどさ、いろいろ組み合わせててさ

【スロゥリィ】
 SELECT MAX(hoge),COUNT(hoge) FROM unko;
 SELECT MAX(hoge),COUNT(*) FROM unko;
 SELECT COUNT(hoge),MAX(piyo),MIN(piyo) FROM unko;

【ラディカルグッドスピード】
 SELECT MAX(hoge) FROM unko;
 SELECT COUNT(*) FROM unko;
 SELECT COUNT(piyo),MAX(piyo),MIN(piyo) FROM unko;
 SELECT COUNT(*),MAX(piyo),MIN(piyo) FROM unko;
となったわけですよ。

MAX(hoge),COUNT(hoge) の組み合わせが遅いのは意外だった。

639:629
09/04/28 16:02:08
>>636
MySQLだと一瞬なのですわ。
まあ内部で常に個数、最大、最小、平均などを持ってるらしいから
こういうのには強いのかも

640:NAME IS NULL
09/04/28 19:45:17
>>639
おぬし、あんまり賢くないな。
そこでマテビューですよ。

641:NAME IS NULL
09/04/28 20:38:37
内部で勝手にそんなもん持ってたら
更新系のレスポンスが最悪なんじゃね?
無料のDBMSをまともに使う気がないから知らんが。

642:NAME IS NULL
09/04/28 22:10:13
MySQLのMyISAMなら件数持ってるからCOUNT(*)は速いけど
COUNT(hoge)はhogeが主キーでない限りだめだった気がする。
MIN、MAXはほかの製品と同じ。

>>639 はたぶんクエリキャッシュにヒットしたんだと思うよ
二回目以降は一瞬。


643:NAME IS NULL
09/04/28 22:28:37
俺流インデックスの命名法

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

テーブル名はできるだけ20バイト以内にして末尾にTBLを付ける。
PRODUCTTBLとか、そんな感じ。
テーブル名を「T_ナントカ」、インデックスを「I_ナントカ」とする流儀もあるようだけど、
俺には馴染めなかった。


644:NAME IS NULL
09/04/28 22:29:38
>>639伝説www

645:NAME IS NULL
09/04/28 22:42:11
命名基準は客先によって歴史的な文化があるから
慣れるまで抵抗あるんだよな。
常に俺ならこうする・・みたいな葛藤と闘いつつも、
でも、知らぬ間に馴染んでいってる。

ところが汎用機の文化をそのまま取り入れたような標準化には
いつまで経っても馴染めないね。。
8文字maxでイミフな記号、連番の羅列とか。。大企業ほど多い

646:NAME IS NULL
09/04/28 22:52:52
デモとか研究とかじゃなく、
運用中の実データで扱ったテーブルの中で
過去最大のレコード数ってどれぐらい?

俺、370万行。


647:NAME IS NULL
09/04/28 22:53:38
>その他のインデックス:IDX1_テーブル名、IDX2_テーブル名、IDX3_テーブル名
カラムインデックスなら、カラム名もつけるのか?

648:NAME IS NULL
09/04/28 22:54:44
テーブル:T_   とらんざくしょん
マスタ:M_     ますた
ビュー:V_     びゅー
ストアド:P_    PLSQL
主キー:PK_   ぷらいまりきー
索引:IX_     いんでっくす

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

論外なのは日本語使ったテーブル名。効率悪いわ気持ち悪いわ・・・

649:NAME IS NULL
09/04/28 23:04:02
>>646

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



650:NAME IS NULL
09/04/28 23:12:07
>>647
>カラムインデックスなら、カラム名もつけるのか?

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

テーブルの定義は別途EXCELで資料化してて、
そっちのほうに、インデックスのカラムを書いてる。
そのEXCELには
CREATE TABLE文とCREATE INDEX文を
自動生成させる機能がある。
まあ10年ぐらい前から良くある話。

651:NAME IS NULL
09/04/28 23:20:38
>>649
えええ。普通じゃないでしょ。
1テーブルで20億行なんだよね?
履歴というコンセプトだと仮定しても
1日に10万行発生で2千日かかるよ。

リレーショナル的に、きちんとクエリに使うるの?


652:NAME IS NULL
09/04/29 01:12:20
Oracleなら億は普通じゃね?
20億でも異常だとは思えない。

653:649
09/04/29 01:44:09
ちょっと金融系のシステムをやるとそれくらいにはすぐなっちゃうんだな。

パーティション表は必須になるし、統計情報とか実行計画とかにもうるさくなるよ。


654:NAME IS NULL
09/04/29 04:35:42 faefKd13
お前等は素人かよ。

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

Oracle屋だったら、テーブルサイズで物申せ。


655:NAME IS NULL
09/04/29 04:53:44 faefKd13
巨大なテーブルに関して、統計情報は取らないな。

初期化パラメータなりを調整してインデックスを使用した場合のコストを低くしたり、
ヒント句をつけて実行計画をコントロールするようにしてる。


656:NAME IS NULL
09/04/29 10:51:50
>>652
>>653
へええ。勉強になった。ありがとう。

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

一応聞くけど、あなたの経験した最大の
テーブルサイズは幾らですか?
俺、1500MB。BLOB列なし。370万行。


657:649
09/04/29 13:16:54
素直にストレージの大きさはどれくらいだったかを聞けばいいのに・・・

俺の関わったシステムは2TBくらいだったよ。36GBx80本。
レコード長としては大きくない。


658:NAME IS NULL
09/04/29 21:06:36
思い出したくもないが、ストレージのサイズで言えば1本64GBで総計100TB越え、LOBなしで1テーブル30GBとか普通のDBやってたなあ・・

659:NAME IS NULL
09/05/01 16:59:56
e-deliveryでzip落とせる?

ずっとInternal Server Errorなんだけど。

660:NAME IS NULL
09/05/02 21:41:14
e-deliveryで
Oracle Database 10g Release 2 (10.2.0) JP Media Pack
for Microsoft Windows x64
を5/2 21:00~から落としてるけど、特に問題は無いです。
Internal Server Errorは発生してないです。

661:659
09/05/03 00:02:42
今試したら問題なく落とせた。
サンクス!

662:NAME IS NULL
09/05/03 10:43:01 blqLN5nN
64ビットのLinuxに11gをインストールしました。その後sqlplusを起動しようとすると、
ORA-12162: TNS:net service name is incorrectly specified
が出てログインできません。ユーザ名は11gをインストールする際にインストーラを起動した
ときのユーザ名です。パスワードも同じ。
Net Configuration Assistantというのを使って設定をしないとだめなのでしょうか?
どうかよろしくお願いします。



663:NAME IS NULL
09/05/03 10:45:05
sqlplus "/ as sysdba"

でローカル接続できない?
これだとリスナ関係ない

664:NAME IS NULL
09/05/03 10:54:22
04/29 に EBS の新リリースが出たから ( 12.1.1 ), こぞって落としに来てるんだと思う.
一通り落として 50GB 程度あるし.
US 側の E-Delivery でしかまだ公開してなくて, 大体 US の昼前から夕方にかけて
の時間帯 ( 東部か西部かとか面倒なこと聞くなよ w ) に激烈に重いのは多分これ.
日本時間の 04/30~05/02 あたりまでは結構 500 出てた.
04/30 から映画観つつ落とし続けてるけどまだ揃わん ...

665:NAME IS NULL
09/05/03 11:07:32 blqLN5nN
>>663
ありがとうございます。
それでやったのですが、同じようにORA-12162がでてログインできませんでした。
netcaで設定しようとしたのですが、その設定もインストール時に終わっていたようです。
一つ気になるのは、インストールを普段のユーザでやったことです。Oracleという名前の
ユーザも作成してないし。これが問題でしょうか?


666:NAME IS NULL
09/05/03 12:08:26
ファイルアクセスは?
umaskの設定してないとか?
Oracleユーザの$HOMEにある.bash_profileに下記内容を追加
umask 022

667:NAME IS NULL
09/05/03 13:38:38
なにもしてなきゃ、umaskは022だろ。
>ユーザも作成してないし
ユーザ名は何でも良いけど、そのユーザに対して、
インストールグループ(ex.oinstall)をプライマリとして、
DBAグループ(ex.dba)をセカンダリとして、
属させないとダメだよ?


668:NAME IS NULL
09/05/03 16:53:52
Oracle 11g Database インストール

1. ユーザ・グループの作成(例)

Oracleインベントリ・グループの作成
# groupadd -g 200 oinstall
OSDBAグループの作成
# groupadd -g 201 dba
Oracleユーザの作成
# useradd -g oinstall -G dba -u 600 oracle

2. Kernelパラメータの設定下記内容を/etc/sysct.confに記載する。設定反映には再起動が必要。

kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
fs.file-max = 102429
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

3. limit.confファイルの修正 Oracleユーザに対してファイルディスクリプタとプロセス数の上限を緩和する。

/etc/security/limits.confに記載する。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

4. プロファイルの設定 Oracleユーザがログインした場合にファイルディスクリプタとプロセスの上限を指定するよう変更を行う。(limit.confで指定した上限にする。)

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

5. インストールするディレクトリの作成マニュアルに記載してある同一のディレクトリにインストールするためディレクトリを作成する。

# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app
# chmod -R 775 /u01/app

6. umaskの設定 Oracleユーザの$HOMEにある.bash_profileに下記内容を追加

umask 022

7. Oracle Universal Installerを使用したインストール
なお、ローカルのX画面上からインストールを前提としている。
1. Oracleユーザでログインし、下記環境変数を指定。

ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE

669:NAME IS NULL
09/05/03 20:43:31
>>665
ORACLE_SID設定してないと出るエラーらしい

$ unset ORACLE_SID
$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.7.0 - Production on Sun May 3 20:42:46 2009

Copyright (c) 1982, 2008, Oracle. All rights reserved.

ERROR:
ORA-12162: TNS:net service name is incorrectly specified

670:NAME IS NULL
09/05/03 21:03:19 blqLN5nN
665です。ありがとうございます。
色々いじってるうちになんだか怪しくなってきたので、OSのインストールから再度やり直してみます。
668と669に書いてもらったのは参考にさせてもらいます。ありがとうス。


671:NAME IS NULL
09/05/03 21:20:48
OSからかよwwww

672:NAME IS NULL
09/05/04 17:49:28 uyHZ9lk2
11gで、文字コードがAL32UTF8なDBにJDBCでアクセスした場合、
Java上の文字列のコードポイントがそのままDBに入る、
すなわちコードポイントの変換は一切行われず、よって文字化けもしないと
考えていいのでしょうか?

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

よろしくお願いします。

673:NAME IS NULL
09/05/04 18:43:29
>>672
unicodeとutf8の変換は発生するが基本的にAL32UTF8が推奨。

674:NAME IS NULL
09/05/04 18:49:52
推奨って誰の?理由は?

675:NAME IS NULL
09/05/04 21:24:27
DBのチューニング本っていうとこれだっていうのが
あれば教えてください。

676:NAME IS NULL
09/05/04 23:09:26 uyHZ9lk2
>>675
URLリンク(otndnld.oracle.co.jp)

677:NAME IS NULL
09/05/05 23:58:26 hdZ976TQ
665です。
OSのインストールからやり直しました。VmwareをインストールしてLinuxをインストールして、
Oracleをインストールしました。でもやっぱりORACLE_SIDが設定されてません。
これはどこで設定し、どういう値になるべきなのでしょうか?
Oracleのインストールは668を参考にしてやりました。
よろしくお願いします。


678:NAME IS NULL
09/05/06 00:27:20
>>677

ORACLE_SIDは普通に環境変数で設定します。
バイナリインストール時にデータベース作成を選んでいたのなら、
そこで指定した値を自分で環境変数に書き込みます。


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