1 :
NAME IS NULL :
2014/06/25(水) 14:36:25.45 ID:5ORZoEMK
いちおつ
3 :
NAME IS NULL :2014/07/08(火) 06:45:33.24 ID:/yC5UX4g
dynamic resource masteringってどんな機能なんでしゅか
5 :
NAME IS NULL :2014/07/09(水) 01:54:10.52 ID:JPui3ZGp
CentOS 6.5 (64bit) に Oracle 12c をインストールできたのは良いのですが、 proc で 32bit モードのコンパイルをするにはどうしたら良いのでしょうか?
6 :
NAME IS NULL :2014/07/09(水) 07:10:47.95 ID:T3s015Q5
>>4 つまりアプリ側でアクセスするブロックを決めちゃってる場合は止めっちゃった方がいいんですかね?
例えばパーティション分けして1ノードはここ2ノードはここってアプリが制御してる場合
>>6 逆にアクセスブロックがノード固定するような場合に有効な機能だと思う。
ただ、DRMはクリティカルなバグが多いイメージ。
SQL Loaderの質問はこのスレでいいんでしょうか。。。 INFILEの件数と、ロード時間って比例するものでしょうか? 件数を急に増加したら、ロード時間がすごいかかるようになってしもうた。 制御が返ってこないから遅いだけなのか それともエラー担ってるのかもわからん LOGに指定したファイルは空ファイルしか作成されない。。。 BADFILEも空だし。、 エラーになってるのか件数多いから遅いのか 切り分けつかないですし。。。
9 :
NAME IS NULL :2014/07/11(金) 05:19:34.85 ID:JTqJ9l1+
SQLLoaderをわざわざ使う意味ってなんですか?
>>8 アラートログとか V$ とかで動きは見た?
状況から思いつく対処としては
・ROWSとかBINDSIZEとか大きくする。
必要なら REDO ログも大きくする。
・他トランザクションとかで許可できるなら DIRECT=TRUE にする。
のどちらか。
>>9 外部表で十分?
広義の解釈だと TYPE ORACLE_LOADER なら SQL*Loader とも。
索引も更新も不要ならそれでいいかも。
11 :
NAME IS NULL :2014/07/12(土) 03:10:20.07 ID:+BQsWZDS
>>8 LOGに指定したファイルは、処理が完了したタイミングで出力されるから
空ファイルのままってことは、処理が遅いかとまってるかのどっちかかも。
後は可能性低いかもしれんが、そのSQL*Loaderの
コントロールファイルのバグとか、Oracle自体のバグとかね。
オラッパチ時代はいろんな不具合があったから
12 :
5 :2014/07/12(土) 13:06:44.04 ID:kAC+71g4
自己解決した。 Oracle 12c は 64bit 版しかないが、Clientは32bit版があって、そこに入ってる proc は 32bit モードでコンパイルできる。但し LD_LIBRARY_PATH の指す ディレクトリは全て32bitのライブラリの在処になってなければならず、当然 gcc のためにも32bitライブラリを入れておかねばならない。
今後も12cは32ビット版を出すつもりはないんでしょうかねぇ・・・
>>13 いまさらDBに32bitは必要ないだろ...
オーラオラオラオラオラ
クールクルクルクルクル
エレブン爺♪
ベネッセはオラクルだったのね。
金持ちはみんなオラクルさ
sys権限持っていたら、監査表に対してもゴニョゴニョ出来そうな気もするけどな。
破壊はできても、改竄するのはできんだろ(かつ辻褄が合うように)。
sys.aud$のデータは一応マニュアルで消そうと思えば消せる。 ただマニュアルで消すと、public synonymが幾つかinvalidになるから、 そいつらを後からrecompileする必要がある。 こうなると後はログマイナーでSQLを追わないとならないから、 発覚する確率はかなり低くなるだろうなw 結局今回もダイレクトメールが顧客に届いて、そこから発覚した訳で、 それが無かったらいちいち監査ログを解析なんてしてないというのが 実情なんだろうけど。
それは辻褄が合っていると言えるのだろうか。。。
sys.aud$からselectしたという記録は消えるよ。
だから、それはただの破壊でしょ。 矛盾を残したままだと、OSとかNW(認証、流量など)とかそっち方面から追跡されたときに確実に追い詰められる。
ドメインの共通サービスアカウント 共有PC データベースサーバのOracleユーザー これ揃えば完全犯罪だよね
>>27 一番肝心なDBサーバのrootが抜けてる。
>>26 まあ、OracleはDatabase Vaultでそういった事細かなセキュリテイを
実現させようとしてるんだろけどな。
DBAと監査権限を持ったユーザーとを分けて初めて、監査が機能
するんだろうけど、どう見ても今回はDBAも監査ユーザーも同じ
会社の人間っぽいよなぁ。
そもそも本番機のrootとgridユーザのパスは申請の都度払い出し 監査はDBサーバーとは別個の完全に独立した機能で厳しくチェックされる。 USBメモリも検知出来ないシンフォームの作ったシステムがおバカなだけ。 この人顧客との信頼関係や仕事の喜びとかをどう捉えてるんだろ?
みんなベネッセの件で余計な仕事増えてるんだな... 業務委託先にSYSやOSのrootパスワード垂れ流し&監査無し&DMP取り放題 機密保持契約結んでるから大丈夫って事でこんな事になってたのに いまさら見直せときたもんだ...
DBのパスワード自体、システムで1つしかないし、 システム開発者なら誰でもその内容も知っている 監査ログももちろんOFF(´・ω・`)
うちは監査ログはデフォルトでNONEだわ。 だって余計な領域を食うじゃん?
質問。 マテリアライズドビューって、Standard Edition One でも使えるの? 11.2.0.1です。
EE
読み取り専用って書いてあるじゃん。 更新できないマテビューに何の意味があるのかと。実質的には使えないってことだ。
11gでimpdpの質問なんですが、今データ移行をやっています。 ある数十GBのテーブルがあって、それをimpdp後、一部のカラムだけ固定文字を付加したいのですが、 何億行もあってupdateに何時間かかるかわかりません。
(すみません、途中で投稿してしまいました。) 回避策として、ワークテーブルにimpdp後、 対象のテーブルに固定文字を付加してダイレクトインサートしようと思っています。 ワークテーブルにimpdpするときはCONTENT=DATA_ONLYにして、 対象のテーブルにダイレクトインサート後、インデックスをenableにしてrebuildすれば、 直接impdpしていることと同じになるでしょうか?
ベネッセ様のおかげでDB監査特需なのはうちだけ? 監査やセキュリティチェックの仕事がアホみたいに来てるんだが。。。 自分が担当した仕事の売上の一部を関わった人間で山分けできるから 特需が収まるまでは給与が素敵なことになりそうだ。派遣社員のテロに感謝しないとね。
>>41 レスありがとうございます。
固定文字を付加して、とは、カラムの追加ではなく、
純粋なUPDATE文のことです。
update hogetable set field1 = 'hoge' || field1
みたいな。
このupdateが重いので、古典的なワークテーブルをかませるので、
直接対象テーブルにimpdpする場合と同様な状態にするには、
ワークテーブルからダイレクトインサートした後に何が必要なのか調べています。
>>44 純粋なUPDATEだったんだ。
完全固定で、その後に追加更新されるレコードはどうするの?
追加更新するデータも固定文字列をつけていいなら、VIEWで
終わらせてしまうのが簡単だと思うけど。
それとも絶対テーブルを更新したいのかな。
10GBくらいの小さいDBを扱っているのですが、 インデックスとメモリの使用率って関係ありますか? 効率的にインデックスが貼られていると、メモリの使用率が低くなる気がするんですが
当たり前だ。 テーブルスキャンが減る→使用するバッファも減る。 ってだけだ。
インデックスも目的自体がそういうことだろ
>>46 そりゃあ、あるだろうよ。
効率的にインデックスが張られていれば、それだけ読み込むブロックが
少なくて済むんだから。
ファイルシステム使っているのなら、特にO/Sレベルでのファイルキャッシュが
少なくて済む。
>>45 追加されるレコードは付加文字が付いてて、
旧システムには付いていないので、
移管時にUPDATEするしかないんです。
expdp/impdpのqueryにはwhereしかないし、
一旦は取り込んでUPDATEするしかないんですよね。。
>>50 数十GBのテーブルにUPDATEだとUNDOの心配とか出てくる。
impdp 時に remap_table して、ワークテーブルとしてインポート。
どうせフルスキャンさせるんだから、テーブルだけでいいと思う。
CREATE TABLE ( ... );
INSERT /*+ APPEND */ INTO NEW_TAB SELECT .. ,'HOGE'||COL "COL",.. from WK_TBL;
CREATE INDEX idxXX on NEW_TAB( ... );
みたいな感じでいいんじゃないかな。
多分
>>40 の時点で想定してる操作だとは思うけど。
12cのマルチテナント使ったことある人いましゅか
今検証中。本番可動はまだ。 テナントに乗せると次からサーバーリプレースが楽になるから出来れば使いたい。
検証はしてるけど、EEオプションがネックで導入するところは無い予感。 ビッグユーザはExadataに行ってるし。
12cを非PDBで使うメリットってなんかあるんじゃろうか? 他の新機能もそんなに目を引く魅力的なものはないし、 バグが恐いから大人しく11gR2使ったほうが無難なような気がするが、 みんなどう思う?
>>54 1個だけならSEONE SEでも使えるで。
サーバ引っ越すときに、共有ストレージにDBがあればUnplug/Plugで簡単に引っ越せるし
引越し先のDBバージョンが上がってても使える技術らしいから使っとき。
>>55 PDB使わないなら11.2.0.4+パッチが無難だろうけど、
11.2はサポート期限のケツが決まってるから、その環境を何年使うかで考えるしかないかと。
11.2もいまだに海外のOracleに問い合わせをして初めて新種のバグだってわかる事例がパラパラあるからな...
CDBにパッチあてたら全PDBがアップグレードされるんでしょ。 一旦別CDBにプラグしなきゃいけないから運用大変そう。
ストレージが共通ならプラグはそんなに時間かからず出来るし 今まで見たいに複数の環境にパッチをチマチマ当ててる手間考えたら相当便利だよ。 EE+オプションだから導入コストが高すぎて導入できないけどな... SERACでコンテナ機能がフルで使えたら、2003Serverで動いてる10gの産廃サーバ15台を 3ノードSE RACに統合できてただけに残念だわ...
>>51 レスありがとうございます。
想定していた操作でも、経験者と同意がとれるだけでも安心材料になります。
ところで、remap_tableとqueryが同時に使用できないことが分かりました。
(仕様なのか、バグなのか)
このあたりの情報ご存知でしょうか?
また、NEW_TABはあらかじめ作成しておくのですが、
alter INDEX idxXX disable;
INSERT /*+ APPEND */ INTO NEW_TAB SELECT .. ,'HOGE'||COL "COL",.. from WK_TBL;
INSERT /*+ APPEND */ INTO NEW_TAB SELECT .. ,'HOGE'||COL "COL",.. from WK_TBL2;
alter INDEX idxXX enable;
alter INDEX idxXX rebuild;
とするより
DROP INDEX idxXX cascade;
上記INSERT
CREATE INDEX idxXX on NEW_TAB( ... );
とした方がよいでしょうか?もしくは同等でしょうか?
もはやimpdpの話ではないですが。。
>>51 とりあえずUPDATEの方法はペンディングしました。
UNDOの拡張もすぐにはできなさそうだので。
一時表領域はメモリとの兼ね合いで不足のエラーになることはあっても
UNDOは使いまわしだから、1テーブルごとにimpdpすれば、
最大のテーブルのサイズがあれば不足にはならないですよね?
>>59 remap_tableとqueryは併用出来るよ。
impdp \"/ as sysdba\" DIRECTORY=HOGE_DIR DUMPFILE=BOGE.dmp LOGFILE=imp.log \
QUERY='BOEOWNER.HOGEBOGE_TABLE1:"WHERE A = 2"' \
REMAP_TABLE=BOEOWNER.HOGEBOGE_TABLE1:HOGEBOGE_TABLE2
62 :
NAME IS NULL :2014/07/29(火) 21:06:45.18 ID:GbdVCVbp
トランスポータブル表領域使ってる奴いる? 移行とかあれのが早かったりすんの?
>>61 すみません、説明不足でした。
今回、表領域とスキーマもremapしていて、「テーブル名が同じ」だと
QUERY='BOEOWNER.HOGEBOGE_TABLE1:"WHERE A = 2"'
が有効になります。
しかし、remap_tableすると、なぜか全レコードがエラーもなくインポートされてしまいます。
REMAP_TABLE=BOEOWNER.HOGEBOGE_TABLE1:HOGEBOGE_TABLE2
で、移行元のスキーマBOEOWNERで修飾しただけだと、なぜかqueryが効きません。
移行先のスキーマでquery修飾しても効きませんでした。
>>59 索引とかよけないもんは、最初から削除しておいたほうがいい。
rebuild は、create より都合が良くないこともある。
>>63 試したこと無いけど、REMAP_SCHEMA と REMAP_TABLE するのが
正しかったりしない?
REMAP_TABLE だけで SCHEMA まで換えるのは構文的に違和感。
>>62 使った事あるよ。
ダンプファイルがメタデータしか含んでいないから、後はデータファイルの
コピーだけがボトルネックとなる。
>>63 REMAP_TABLEでオーナーは変更出来ないよ。
共有データベースリンクのメリットデメリットってなんですか
サーバ上で上がってる oracle/Middleware/agent/core/12.1.0.1.0/jdk/bin/sparcv9/java -Xmx128M とかってなんのプロセス?
>>63 query句これでやってみ
QUERY='sales:"WHERE EXISTS (SELECT A FROM HOGEBOGE_TABLE1 c
WHERE A=2 AND ku$.A = c.A)"'
あと
>>64 も言ってるがパラメータこっちのが普通かと
お前のでもできるか知らんが
REMAP_TABLE=HOGEBOGE_TABLE1:HOGEBOGE_TABLE2
REMAP_SCHEMA=BOEOWNER:移行先のスキーマ名
>>68 Cloud control 12c用のエージェントのプロセス。
>>67 メリット: 皆が使える。
デメリット: 接続先のユーザーの権限によっては、セキュリテイが甘くなる。
db file sequential readのラスボス感は異常
11.2.0.1 を使っています。 全く同じSQL文なのに、違うSQL_IDが発番されることってあるのかな? 現在、同じSQL文にAとBというSQL_IDが発番されており、 Aには1つ、Bには3つのPLAN_HASH_VALUEが存在します。 私の理解では上記ケースの場合、AというSQL_IDに4つのPLAN_HASH_VALUEが存在し、 BというSQL_IDは発生しないものだと思っていたのですが・・・。 ちなみに見ているビューはV$SQLSTATSです。 (KROWN#133109 も確認済み)
>>74 大文字・小文字・スペースまで全部一緒かチェックしてみ?
>>73 db file scatterd readじゃなくて?
78 :
74 :2014/07/31(木) 19:53:28.09 ID:???
>>76 ありがとう、解決しました。
くだらん質問でスマソ。
TOP5 log file sync enq: KO - fast object checkpoint db file sequential read db file scatterd read CPU Time どこかのアホがストレージの選定ミスった結果この有様... 80万ぐらいでPCI-expressに挿すSSDを2枚追加してミラーしたら爆速になったけどな。
oracleのバージョンアップってすごい機能追加されるんだな 他のDBと比べるとoracleって圧倒的に高性能って気がしたよ
そりゃたけーもん(´・ω・`)
RMAN勉強したいけど、12cで勉強は厳しいね 11gのemが前提の資料ばっかりで
>>83 12cはコンテナのバックアップリカバリ概念が入ってくるから
まずは11gでシングルDBのバックアップリカバリ基礎を勉強してからのほうがいいかと。
トラブった時はem使えない事多いから、コマンドで覚えたほうがいいよ。
nullと''が区別できない糞DBだけどなw
そーいえばnullをinsertするときに''って書くヤツとNULLって書くヤツがいて Oracleのバージョン変わった時におおはまりしたわ...
区分とかコードをVARCHAR2で宣言して、検索するときにTRIM()する奴が許せない 処理速度遅すぎだし、バグ出しまくり
TRIMする状況がわからんのだが... 桁の数字ごとに区分や意味を持たせてるんかな。
>>83 12cのRMANから表レベルで戻せる様になったからな。
さらにプラガブルDBの指定とか細かくなっている。
マジか。 やっとRMANの気持ちがわかってきたのに。 その前に PDB/CDB さんと仲良くなってみよう。 オプティマイザさんの気持ちは、未だに分からないが。
追えば逃げ、逃げれば追う
マスタをバッファキャシュに載せて、なるべく物理ioを発生させないようにしたいと考えています。 キャッシュが乗っていることで、高速化した/しないの判断はどのようにすればよいでしょうか? ioが遅い状態を作り出せば、キャッシュが使われているかわかりやすくなると思います テーブルフルスキャンをすればioが遅くなると思いますが、キャッシュがメモリから落ちるような気がます
>>92 buffer_pool にテーブルkeepすればいいのでは?
>>93 レスありがとうございます。
マスタをKEEPにして、フルスキャンするテーブルをRECYCLEに設定すればokということでしょうか?
>>69 ku$表のヒント、参考になりました。ありがとうございます。
ただ、queryにku$表と自己参照の表でexits句付けて、いろいろ試してみましたが、ダメでした。
remap_tablespacesとremap_schemaは大丈夫なのに、
remap_tableを同時に使用することは、どうしてもできませんでした。
ワークの表に全体をimpdpして、insert select時に絞ることにしました。残念。。
>>95 rempa_tableのremap先にもスキーマ名を指定しまっていてエラーに
なっている悪寒。
おまえらの知識量すげえな どうやって学んだんだ? やっぱ経験?
7から初めて気が付いたら12cになっていましたよ。
経験か 場数積まないとだめなんだねありがとう
>>97 毎日20個近いインスタンス面倒見たり、週1ぐらいでサーバの仕込みやってるといろいろ鍛えられる。
バックアップリカバリと簡易的なパフォーマンスチューニングは最低のスキルとして持っておいたほうがいいぞ。
あと、会社が資格取得を推奨してて 11g Goldですら全額会社負担+合格祝い金10万出るから
東京の東銀座(築地)で30万ぐらいするOracle講習を3つ受けて、築地で寿司食ってデリヘルで遊んで1ヶ月で鍛えられてきた。
>>99 ボラクル社から提供されているトレーニング受けて、後は実践で
ひたすら経験積んでいくしかないな。
102 :
NAME IS NULL :2014/08/05(火) 23:59:35.41 ID:Qedx+/Vm
高いけど何気に実務で役立つこと多いからな。 東銀座の講師は11g gold 1号のカリスマおばちゃんだった。
>>102 自分の会社が講習やってるけど、評判良いからそのおばちゃんの講習受けに行ったわw
>>102 俺もその人の講習受けた。すごく分かりやすかった。
>>102 俺はそのおばちゃんの横で一緒にPlatinum試験を受けたことがある。
サインもらっておくんだったよ。
おばちゃん人気に嫉妬!
グローバルナレッジで受講するよりも内容がすごく濃いし 徒歩5分で銀座or築地っていう条件で飯に困らんし言うこと無いわ。
まあ、現場の知恵ってものがあるからな。
Oracleといったらシステム・テクノロジー・アイ
oracleのバージョン大きくなりすぎて、じゅうにcって言っちゃう
NESTED LOOPムカつくわー。 やりたくなかったが、ヒントでHASHを書いたら すんげぇ快適になった。
113 :
111 :2014/08/07(木) 21:46:51.27 ID:???
114 :
NAME IS NULL :2014/08/07(木) 22:44:14.66 ID:/B/9rzSR
Oracle Textってテーブルの結合にも使えるの?
>>113 なぜオラクルは自信持ってルールベース捨てたんだろうな
116 :
NAME IS NULL :2014/08/08(金) 22:20:48.54 ID:1MM/FAXQ
117 :
NAME IS NULL :2014/08/08(金) 22:57:57.21 ID:21gP43QD
カス中国人SAPエンジニアが設計したデータ構造 columnA|columnB -------+--------- CCC DD|EEEE FFFF CDEFは全て外部キー SQLloaderでtsvにして渡すから各columnをスペースで区切ってお前のDBで正規化しろだと? 中国ではこんなのが普通なのか?
学生でもやらないな・・・
腐ってやがる!!
>>113 どうやって取ったのか。依存カーソルの破棄はした?
テーブルサイズと、サンプルサイズは?
とか疑問はあるけど、そーいうどーしようも無いことに遭遇する事は確か
にあるので何とも。
カーディナリティ・フィードバックに悩まされたりするし。
>>114 TEXT索引を作成して、contains とかの問合せ演算子を使わなければ、
ただのカラムでしかないのでできるはずだけど、何をしたいの?
TEXT索引付けるようなカラムを結合条件にする状況が、想像できない
んだけど。
121 :
「ガスライティング 集団ストーカー カルト」で検索を! :2014/08/09(土) 08:20:15.76 ID:rPj5oVaE
★マインドコントロールの手法★ ・沢山の人が偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い .....
impdp時にアーカイブログを出力したくないのですが、 事前にアーカイブログモードをノーアーカイブログモードするしかないでしょうか? 現行の運用はアーカイブログモードで、表領域もLOGGINGで作ってあります。
impdpはデフォルトでダイレクト操作だと思ったけど。 本当にアーカイブログが大量に出たりしてる? (CREATEとかメタデータ操作によるREDO生成はある)
>>122 1. メタデータのみをインポート
2. 表と索引をnologgingモードに変更
3. データのみをインポート
4. 表と索引をloggingモードに変更
>>125 ありがとうございます。
まさに求めていたレスでした。
今日試してみたところ、アーカイブログモードで表領域がloggingでも
表とそのインデックスをnologingにすれば、ログは出力されなくなりました。
ただ、テスト対象が整理されてないかもしれませんが、
loggingになっているテーブルでも、impdpでログが出力されないものがありました。
ログ出力されるかどうかは、
user_tablesとuser_indexesのlogging列がYESになっていること以外に
条件があるのでしょうか?
また、明日試してみようと思いますが、表領域をnologgingにすれば、
それに属する表は、すべてログ出力しなくなるのでしょうか?
いずれにしても、DB移行中に、 わざわざmount状態にして一時的にノーアーカイブにするとか、 RMANでログを追いかけながら削除しようとしていた負担が一気になくなりました。 先週、移行リハでimpdpしていたら、ログがパンクしてローカルからしかつながらなくてあせったり。 移行に慣れている人にとっては、当たり前の話なのかもしれませんが。
以降先のDBを止められるならノーアーカイブに切り替えたほうが楽じゃね? 止められないなら書かれてる手順だけど。
exp/impでindex持ってくときって移行先でindexの断片化って解消されるですか? 内部動作的にはindex=yで移行したらcreate tableしてデータinsertして、 indexをcreateしてると思うので作りなおしてるって考えで良いんでしょうか? 表領域の断片化じゃなくて、ブロックの内でデータがindexの貼り直した時の状態になるのかどうかを気にしています。
いえーす
>>128 いろんなクラスタのミドルが動いていて、mount状態にするのがハードルが高いのです。
ただ、今日、impdpにqueryをつけると、ダイレクトパスにならず、
nologgingが効かなそうなことが発覚。
どなたか詳しい人いますか?
大きいテーブルは、すべてワークテーブル作ってqueryなしで全レコードimpdpし、
そこからinsert /*+ append */selectすればよいかな。。
Oracle ASM(Grid infrastructure)の欠点を お前らの体験レベルで教えて欲しい
>>132 ASMインスタンス分のリソースが必要。
KROWN#165265でインスタンスダウン。
KROWN#165683でインスタンスダウン。
>>132 ASMメタデータ含むディスク破損した時のリカバリ手順が複雑、難解。
ASMアーキテクチャ理解、コマンド習得のための学習コスト
上記を理解していない人が適当に作ったシステム保守の潜在リスク
>>132 >>134 これ
某ストレージのファームバグでデータが吹き飛ぶ事故を経験してから
異ベンダーのストレージ2筐体+ASMで領域をミラーリングしましょって対策立てた人がいて
十分な経験無いのに初めてASM導入したら、オペミスで領域吹き飛んで火事になったわ。
十分なスキル持った人間を育成して行うか、外部委託してプロに保守やらせないとヤバすぎ。
にわか11g GOLDに仕事させたらあかん。
オペミスって具体的になにやったの?
夜中に呼び出されて緊急出社したら「コマンド間違えて領域飛ばしちゃった♪♪」としか教えてくれず 構築した人間が捕まらなかったから、ディスクグループ再作成とRMANのリカバリをやらされたよ... 計画停止だったからRMANのコールドバックアップセットが残ってて助かった。 キチっとした会社だと原因究明と対策を立てる検討会議をするんだろうけど そんな事やってる暇ないからととっと復旧させて次の仕事進めろって事でもみ消された。
Goldホルダーでも未経験は怖いからな ウチの会社はどんなに資格持ってても教育しまくりよ
11g Gold でも ASM はそんなに出題されないからな。 個人的には Grid infrastructure や RMAN の Expert 資格があってもいいんじゃないかと思う。
こうして考えると、Grid infrastructureの上に成り立っているRACって やっぱムズイわー。
RAC Expertの資格はあるだろ。勉強になったよ。 Platinum11g + RAC Expert でも仕事はないけどなー
RMANはたまに使わないとリカバリ手順ボケるから 毎月1回、二人ペアで相方が無作為にDBぶち壊してもう一方が リカバリする訓練してるけど、ASMは無理だなー 12cのRMANもそろそろ勉強しないといけないし面倒だわ。
営業努力が足りんだけじゃね... 2003Serverからのリプレース案件とかベネッセの影響で監査強化の案件が沢山きてるから手伝ってほしいわ。 SPARC + SSDストレージのSE RACにサーバ統合する提案が大ヒットして保守契約まで取れて忙し杉。
>>143 やっぱりDBA集団の会社に転職しないとだめか。
俺だけ頑張っててもしょうがないということなんだよなぁ。
アプリ開発会社の中でDBAやってても構築案件はこないぞ。 ハードとDBとアプリを一元的に販売して保守まで面倒見る提案しないと。
>>145 資格とか独力で取ったんかよ。
すげーな。
linux版のoracleめちゃくちゃインストール面倒いなー windowsしか使ったことないから知らなかった linuxでRACとかやっている人、技術レベル高すぎだろ
Linux/Unixはカーネルパラメータの概念知らないと運用始まってから大ハマりするからな... Windowsは簡単に構築できて2008R2はかなり安定してきてるから無難な選択かもしれん。
俺なんか逆にLinuxしか触ったことないからWindows触るのが恐い。
インストールだけなら、確かにWindowsの方が楽かな。 でも、わけわからない嵌り方しやすいのは、断然Windows。 やっぱり、OracleはUnix前提で作られている。
ExadataのおかげでOracle LinuxとSolarisに強くなりました
バッチシステムをちょちょいと組むのは断然UNIXの方が楽
WindowsでRACはどう?
Windowsサーバを使うためにはCALがいるからな。 あえてWindowsを選択する目的が限られる気がする。
windowsの場合windows + iis + sql serverが多いので、oracle使っている所すくないよね うちは本番サーバでrmanすら使ってないよ
アーカイブログモードで運用+RMANバックアップで万が一に備えようって 智識持ってるヤツがいないもん... EXPとかEXPDPしてるからいいよ!って言ってるわりに DB壊れると泣きついてくるけど、なんともなりませんって断ってる。
158 :
156 :2014/08/17(日) 20:01:30.28 ID:???
>>157 うちの会社は50人だけど、俺しかoracle使ってないよー
expdp使いたくないけど、自分の技術じゃどうにもならん
C・Dドライブの2つしかなくて、oradataがDドライブに置かれている
これじゃ、RMAN取れない気がするんだ
>>158 普通に取れるけど..
Dドライブの中にRMANでバックアップセット吐き出したあと、NASかファイルサーバにコピーしれ
アーカイブログも30分に1回バックアップとってコピーしれ
何か事故があっても30分前に戻れば何とかなるもんだ。
161 :
NAME IS NULL :2014/08/18(月) 00:56:14.25 ID:dQVtFxWE
1Z0-144と1Z0-147ってどっち受ければいいのかな。。
素朴な疑問なんだが、ASMメタデータってRMANでバックアップ取れるの? md_backup&md_restoreじゃないと無理?
>>162 正解。
うちの会社でRACが4セット動いてるけどASMのメタデータなんて
1回もバックアップ取った事が無いといまさら気づいた件...
>>162 RMANじゃとれないよ。
Grid Infrastructureのややこしいところは、OCR、Votingディスクの格納先もASMがほぼ必須になってるとこ。
共有ディスク全損ケースのリストアテストしてみると、中々復旧できなくて楽しいかも。
ASM/OracleのSPファイル復旧が以外とハマります。
共有ディスクはRAIDとコントローラ二重化と経路二重化で壊れない前提のシステムが多いからな... 某E社のストレージファームバグで酷い思いをした人は多いはず。
166 :
156 :2014/08/18(月) 22:50:47.10 ID:???
>> 160 ありがとう勉強になりました。 アーカイブログって他のディスクにバックアップできるんですね
167 :
162 :2014/08/18(月) 23:22:32.71 ID:???
>>163 >>164 レスありがとう。
md_backupするとしたら、タイミングはいつがいいんだろうね?
(毎日取る必要があるシロモノなんだろうか?)
>>167 最低限、ディスクグループの構成変更するような変更が入ったタイミングで取得すれば問題ない。
定期的にとる必要はないよ。
Oracleを起動したく ./sqlplus / as sysdba を実行したのですが ORA-12162: TNS:net service name is incorrectly specified というエラーが発生してしまいます。 どういう対策をすればよいでしょうか?
TNS_ADMIN 環境変数を設定している?
TNS_ADMIN じゃないや。TWO_TASK か。
>>169 ローカル接続なので、ORACLE_SID環境変数が適切に設定されてないんじゃない?
ORACLE_SIDを設定したら一歩前進しました。 ありがとうございます!! 今度はORA-01031 insufficient privilegesというエラーが出てしまいます。 どうしたものでしょうか?
>>173 Oracleのエラー番号ググると出るぞ
権限が不足してる
>>173 sysdba 権限で接続するためには、OS側の実行ユーザがOSのdbaグループに属している必要がある。
ストアドで普通にinsert文を実行していたら、突然処理が止まってしまいました。 現象は↓なのですが、どんな問題が考えられるでしょうか @ SQL Developerのセッションモニタを確認したらば、Activeなコネクションが1つだけあった 実行中のSQLは何も表示されていなかった A 自分がかけたロックだけで、テーブルにデッドロックは発生していなかった。 B 高い負荷がかかる処理ではないのに、CPUの使用率25%前後で推移していた 問題のあったコネクションをkillしたらば、CPUの使用率が劇的に下がった C 問題のあったセッション以外では、普通にINSERT、SELECTを実行することができた ループの外でただ単にinsert文を実行しているだけなので、oracle(ver 11.2.0.1)のバグなのかなー?って思いました。 insert文のあとにsql%rowcountを実行するようなロジックになっていました。
>>176 100%発生するの?
ならSQLトレース仕掛けてみたら?
>>176 4coreマシンで無限ループ状態になってるんじゃない?
再現性あるならSQLトレースとって実行されてるSQL確認すればどこでループしてるかわかると思うよ
>>176 JDBC Thin driverで接続している場合にgetnextpacketで
永遠に待ち続けるバグが11.2.0.1以下であるな。
180 :
176 :2014/08/22(金) 07:06:19.29 ID:???
>>177 再現率100%なのか今日調査する予定です
>>178 Xeon 4コアなので、その通りだと思います
>>179 vb.netなのですが、ちょっと違うかもしれないです
やっぱり、ORACLEのバグっぽそうな動作ですね!!
>>180 とりあえず、AWR/statspackなり、SQLTraceするなりして何が実行されてるのか見てごらん。
特定のSQLが大量に実行されてるならプログラム内でループしちゃってろんだろうし、SQL実行回数が想定通りなのにその状態ならバグの可能性が高いんだろうよ。
DBLink使ったSQLの実行計画って微妙だなぁ…。 SQL*Plus の AUTOTRACE で見た実行計画と、 DBMS_XPLAN.DISPLAY_CURSOR()で見た実行計画とで出方が違うのはなんでなん?? リンク元とリンク先のDBでSQLトレースONにしてみたら、 リンク元が馬鹿な結合(MERGE JOIN CARTESIAN)を選択していて BUFFER SORT が大量発生。 INDEX RANGE SCAN して欲しいんだけど、それはリンク先のDBしか知らない情報なので、 リンク元がMERGE JOIN CARTESIANを選択し、 リンク先に渡したSQLがINDEXを使わない形に変換されてて、TABLE ACCESS FULL になってた。 こういうケースだとINDEXヒント書いても効かなかった。 MERGE JOIN CARTESIANを辞めさそうとUSE_NL書いたら、辛うじて少し早くなった。 (リンク元がMERGE JOIN CARTESIANではなく、NESTED LOOPを選択してくれたため) でも INDEX は使ってくれへん。。。 誰か DBLink を使った実行計画で悩んだ人、おらん?
OS終了時のDBの終了の順位ってどうしたらいいんだろう Redhat6.4にEnterprise Manager 12c クラウドコントロールを構築してるんですが DB、OMSを終了させるスクリプトを組み込む場合 OMS→DBなのは確実なんだろうけどKillのどこあたりまでに実施させるのが いいんだかさっぱりわからない (LinuxもOracle製品も初めて触る) OEMをインストールした際に用意されるスクリプトがK98gcstartとかだから K99dboraとかで本当にいいんだろうか
>>183 Killは数が小さい順番から行われるぞ。
つ〜か、デフォルトでこんな感じになってないのか?
/etc/rc.d/rc0.d/K10dbora
/etc/rc.d/rc1.d/K10dbora
/etc/rc.d/rc2.d/K10dbora
/etc/rc.d/rc6.d/K10dbora
/etc/rc.d/rc2.d/K19gcstartup
/etc/rc.d/rc3.d/K19gcstartup
/etc/rc.d/rc5.d/K19gcstartup
OHSの話で恐縮だけど12.1.3でとうとうmod_plsqlが廃止になったな これからはhtpパッケージとかもバンドルされなくなるな
APEXで作りなおせというのがスタンスらしいな。
>>184 そうか、リンク元だけでなんとかしようとするから無理があるのか。
ありがとう、解決した!
>>188 VIEWで本当に解決したのかどうかは分からんが、そういう対処をした場合、
「これ何のためのVIEW?」って聞かれたときに、これはドコドコとのDBリンクで
リンク元のコレコレいうSQLの実行計画を最適にするため、と示せるように
情報を残しておかないと、いずれ訳が分からなくなって、
このVIEW、要らないんじゃね?
→でも消して正常動作する保障なくね?
→んじゃ残すか…
的な意味不明な存在を残す原因となりかねんよな
私見だが、世はDBLinkを安易に使いすぎだ
>>189 うちはビューのソースの中に全部書くルールにした。
サーバリプレースの時に不要なゴミと判断されて移行対象から漏れて翌日の業務が止まった事があった。
昔関わったシステムで、月末に動くバッチで「○○集計結果△年□月」みたいな表が作られて そこにバッチの結果が入れられる、というのがあった 業務仕様上は、過去の業績とかを見るために必要なんだが、そんな風にして作られた表が 毎月増え続けるし、インデックスもある、統計情報も取ってる、DBlinkで参照までされてる、 という代物だった アホみたいに表領域を消費していくし、かといってゴミとも判断できないしで、 リプレース時は全部移行したのだが、そのゴミっぽいのを移行するために まる二日使う破目になったぜ その後、アプリのリプレース時に、そのゴミっぽいのをどうしたのかという話は、聞かない
1個のテーブルに蓄積すると肥大化しすぎて検索条件によっては検索遅くなるから テーブルを自動生成して結果を出力する仕組みも悪くはないんだけどね...
>>192 うちの会社に、SQL Serverでそういう実装している人がいる
>>191 みたいな事になってるよ
> 1個のテーブルに蓄積すると肥大化しすぎて検索条件によっては検索遅くなるから
たぶん、1回でもそういう実装やっちゃうと、頭が悪い人のせいで歯止めがかからなくなるよ
受払いを作ると、トリガーで在庫マスタを生成するようなストアド作ったんだけど みんなは在庫上げる時、どういうふうにしてるの? ORACLEで実装しちゃうと、javaでhibernateとか使う意味とか無いじゃん
>1個のテーブルに蓄積すると肥大化しすぎて検索条件によっては検索遅くなるから その為にパーティションというものがあるんじゃなかったけ?
>>192 普通パーティション化するだろ。オプション必要だけど。
197 :
192 :2014/09/03(水) 23:35:02.97 ID:???
>>192 EE+オプションを購入/維持する予算がおりないんだよ... わかってくれよ...
アプリの開発ベンダーもうちの社員のアプリ管理者もOracleの最新機能に興味無しで
EEの有用性を理解せず、SEONEで検索が遅いだの文句をたれてるんだよ...
パーティションとは言わないけど、EEのパラレルぐらいは欲しい...
198 :
192 :2014/09/03(水) 23:36:01.37 ID:???
アンカー間違えた...
>>197 そんな時は内緒でライセンス違反してSE1でパーティション化したら?(嘘。やっちゃいけません)
確かパーティション化はSE1でもやろうと思えば出来たような気が。
パラレルは無理だった気がするけど。
200 :
NAME IS NULL :2014/09/04(木) 19:37:48.61 ID:Ew55DhOt
オプティマイザ統計の取得なんですが、 gather_shema_statのoptionsをgather autoにしたときの動きがイマイチわかりません。 失効、欠落は取得するんだろうけどそれ以外も何かoracleの判断があって取得とかしてるんでしょうか? あとヒストグラムとかパーティションとか索引の統計も判断して取られてるんですよねきっと
>>200 表の行数が10%以上変わった時に再取得される様になっている。
統計情報が欠落・失効していなくて、かつ行数が10%以上変更して
いなかったら対象から外される。
202 :
192 :2014/09/04(木) 22:14:21.13 ID:???
うちの会社で必要なのはパラレルだなー。 決算売上集計用のバッチを4コアパラレル化に最適化してSSDに乗せたら6時間が10分になった。 けど、帰るときに仕掛けて朝終わってればいいんじゃね?って事で却下された。 集計間違ってるとまたその夜に実行...って事でどんどん業務が遅延して何故か怒られるのは情シスという...
203 :
NAME IS NULL :2014/09/04(木) 22:42:49.19 ID:Ew55DhOt
>>201 回答ありがとうございます。
ただ、表の10%変化で失効になりますよね?つまり失効と欠落の対象のみって事ですか?
それとも10%が変わった場合は、その瞬間に動的に取得されるとおっしゃられていますか?
>>203 通常はは失効と欠落のみが対象。
行数にあまり変化がなければ実行計画を変える必要が無いというのが
スタンスなんだうろな。
それと統計情報の取得はGATHER_STATS_JOBでスケジュールされている。
- WEEKNIGHT_WINDOW
月曜日〜金曜日の22時にオープンし、8時間後(明朝6時)にクローズするウィンドウ
- WEEKEND_WINDOW
土曜日の0時にオープンし、2日後(月曜の0時まで)にクローズするウィンドウ
>>202 パラじゃなくても、フラッシュキャッシュだけでもあるとありがたいん
だろうけどな。
>>204 WEEKNIGHT_WINDOWとWEEKEND_WINDOWは10gね。
11gは別。
Windows2003Server +10gの産廃サーバ軍の駆逐に成功したんだけど 42Uフル実装の環境が8Uになって冬場に温風で温まる場所がなくなった件。 最近のマルチコアCPUやSSDってすげーんだな...
42Uフルで実装できるサーバルーム持ってるなんてすごいなぁ。 DC業者のラックだと、1ラック当たり実効8KVAまでしかないところが多いのに。
無知ですみません 会社で情報公開するためのバグ情報や重要情報を参照する場合はoracleサポートの情報から拾うしかないのでしょうか?
210 :
NAME IS NULL :2014/09/09(火) 21:11:37.91 ID:eSRSkbZu
基本はサポート契約しかない。
>>209 まあ、有名なバグや情報ならググッたら出て来ることもあるけど。
ただそんなサイトにどれだけ信頼性があるかと言われると・・・。
>>210 >>211 そうかあありがとう
KROWNとパッチのBugfixみてしこしこ見つけて行くしか無いのね
会社で情報公開っつーと、たとえば極端な話Oracleのサポート契約を1本分だけ締結して そのサポート契約でKROWNにアクセスした結果を社内向けに流用って使い方かな NGだろうな Oracleなんて単品じゃ使わずに何かのシステムで使うものなのだから、 サポート契約で得られた情報は、その契約対象のOracleを使ってるシステムの Oracleに関するトラブル対処のためにしか使えないよ ケチくせえんだよな カスみたいなバグ大量に抱えてるくせに つってもサポートの充実具合は、PostgreSQL界隈よりゃマシよ 包括的な契約する気なら、MS-SQLの方が安くつく
214 :
NAME IS NULL :2014/09/10(水) 20:21:29.26 ID:vfAftlKB
お前らリソース制御ってやってる?どうやって設計してるの? 1日の業務処理を見て時間単位で細かくやってたりするの?
>>214 そもそも使用率100%にならないと発動しないから、適当に業務優先度に従って割合決めればいいんでない?
>>214 鯖の性能がそこそこ良いとリソース管理とか使うことないなぁ。
バグだらけ
SEONEで1台の鯖で複数のインスタンス立ち上げてる時に インスタンス毎にCPU_COUNTで上限決めるぐらいでリソース制御なんて立派な事やらないな...
リソース制御はある程度潤沢だったらやっぱ考慮してるとこ少ないんだな
そーいうの以前に、 データファイルの使用率が90%超えた、どーすりゃいいの? CPU高騰してる! とか騒ぐ人たちって、リソース監視だけして、閾値に達したとき の対応を何も考えてなかったりするの何なの?
Q(吉井英勝):海外では二重のバックアップを喪失した事故もあるが日本は大丈夫なのか A(安倍晋三):海外とはIT業界の構造が違う。日本のIT業界で同様の事態が発生するとは考えられない 1-6 Q(吉井英勝):CPUが完全に高騰した場合の復旧シナリオは考えてあるのか A(安倍晋三):そうならないよう万全の態勢を整えているので復旧シナリオは考えていない 1-7 Q(吉井英勝):負荷軽減に失敗し各ジョブがアベンドした場合の復旧シナリオは考えてあるのか A(安倍晋三):そうならないよう万全の態勢を整えているので復旧シナリオは考えていない 2-1 Q(吉井英勝):運用開始が遅延しお客さんが激怒した場合の被害予測や復旧シナリオは考えてあるのか A(安倍晋三):そうならないよう万全の態勢を整えているので復旧シナリオは考えていない
222 :
NAME IS NULL :2014/09/13(土) 09:11:41.59 ID:yR1EU4dn
>>220 そもそも監視すらしてないやつ多いからな。
自動拡張入れてるからとノーガードだったらデータファイル32GB超えてシステム止まったり
パスワード10回間違えてアカウントロックさせたり…
数百万行を1発でdeleteしてアーカイブログ溢れて心中したり…
アプリの開発はできてもDBの運用を考慮してない客は結構いるよ。
>>222 >数百万行を1発でdeleteしてアーカイブログ溢れて心中したり…
しかもそういうヤツに限って
「どうしてアーカイブログが大量に出力したら止まるんだ?!ちゃんと運用してるのか?!」
とかって逆ギレしたりするしな。
>>220 そんなの考えてない奴いるのか?事前に方式で詰めとくもんだろ
>>220 >データファイルの使用率が90%超えた、どーすりゃいいの?
Advanced Compressionをつかう [せいかい]
みたいな現場に携わったことがある
ワロえない
特定の表領域だけのポイントインタイムリカバリやった奴いる?
俺はやってないが、他の表領域上のテーブルとリレーションはられてて難儀したとかいう話は聞いたことある
表領域、パーティション、スキーマ、表とかを、分けるデメリットを考えずに、 気分的に、とかセキュリティ的に、みたいなへんな理由で分けて、 その結果運用しづらくなっている、やりたい事ができなくなっている、 みたいな事例が多いように思うんだよな
セキュリティは大体Vaultで解決してるわ
性能考えないでSQL組む開発者多すぎ。 特に大規模システムとかで開発と基盤で別れてるプロジェクトに多い気がする。
>>228 やっぱそうなるよな逆に時間かかるケースもありそうだな
>>228 開発したら終わり、運用なんて考えてませーんっていうやつ多いよね
システムにおいては、DB屋としての視点・評価基準というものが、あると思うのだよね
それは別にDBだけではなく、NWしかりOSしかりアーキテクチャしかりだけど
そのDB屋的な視点をシステムに込めていくためには、やはりDB屋が開発の現場に
もっと首を突っ込み口を出すべきなのだと思うのだよね
無論そうするためには、開発しているシステムが何のシステムなのか、少なくとも
DBについてはどういう想定で設計をしているのか、どういう実装をしようとしてるのかを
把握してなけりゃならないし、また事実そうすべきだとも思うしさ
レビューに出向いて、たとえばパーティションを使うっていうケースなら、
>>228 みたいな
場合を考慮しての設計なのか、とかを場面場面で指摘していかないとさ
それでも結局、運用で問題を起こすのは、考慮されてないSQLなのだから、さ
高速差分増分でバックアップ取るときレベル0をイメージコピーで取らないとブロックチェンジトラッキング効かなかったっけ? バックアップセットで取っても大丈夫?
>>235 ブロックチェンジトラッキングがどうこういう前に、
そもそもレベル0のバックアップがないと、
レベル1の差分増分は取得できないと思うよ。
237 :
NAME IS NULL :2014/09/17(水) 22:58:24.93 ID:Ba9Lg+26
>>236 絶対そういうこと聞いてないだろwwwww
>>235 多分バックアップセットでフル取ってもトラッキング効くと思うよ
実際にレベル1取るときにiostat_function_detailの情報selectしてみて
incremental backupがuse_change_trackingの所がYになってれば効いてるはずだから確認してみ
239 :
236 :2014/09/18(木) 05:47:12.99 ID:???
Solaris版11gR2でパーティション表へのSELECT文について質問なんですが、 レンジ・パーティションのキーが年月で切ってあって、SELECTの条件にその項目があります。 条件の値をリテラルにしてSELECTを実行した場合、静的パーティション・プーリングで対象のパーティションのみを検索します。 しかしバインド変数の場合、動的パーティション・プーリングになり、全パーティションを見にいってしまいます。 可変な条件にあったパーティションのみを選ぶようにオプティマイザにヒントなどを与えることは可能でしょうか? また同じような事象の経験などあれば教えてください。よろしくお願いします。
>>241 レスありがとうございます。説明不足でした。
SQL解析時には変数なのでどのパーティションにアクセスするかは決まってないため、
動的パーティション・プーリングになること自体は問題ないのですが、動的に判断した結果が
いつも全パーティションにアクセスというPARTITION RANGE ALLになってしまうのが困っています。PARTITION LISTはSINGLEになっています。
>>242 もしかしたら /*+ dynamic_sampling(4) */が効くかも知れない。
>>243 レスありがとうございます。
統計情報は取り直したのですが、動的サンプリングは試してませんでした。
参考にさせていただき週明けにやってます。ありがとうございます。
なお追記ですが、バインドピークはプロジェクトの規約でOFFにしています。
調べたところ11gからCardinality FeedbackやAdaptive Cursorという機能があり
試してみたいのですがいまいち使い方がわからないのと、他のSQLへの影響が心配です。
他にも情報があればよろしくお願いします。
(´・ω・`)Oracleのバックアップとリカバリの方法が分からん
>>244 ちゃんと理由があるんだから、素直にリテラルにSQL作って流したらどうか
プロジェクトの規約なんて、そうなることを想定していなかった、ガイドラインであろう
>>246 アドバイスありがとうございます。
動的SQLで実行することも検討してみます。
>>249 仮にノーアーカイブログモードの場合、
RMANで有効なホットバックアップ取れたっけ?
251 :
NAME IS NULL :2014/09/21(日) 08:10:32.81 ID:GNvQtJ4Y
ノーアーカイブならバックアップ中は止めないと無理。 アーカイブログモードでrmanを駆使しつつ 各スキーマーのオブジェクトをexpdpしておくと様々な事例に対応できるよ。
pga_aggregate_target sga_max_size sga_target memory_max_target memory_target パラメータ名称にろくな命名規則、統一性がないようなのですが なぜでしょうか?昔からOracleは何も考えないで建て増ししてきたのでしょうか?
パラメータ溢れかえってるから今更どうにも出来ないんじゃない? 隠しパラメータで数千とあるし
>>253 Oracleのゴミ溜めなんですね
よくわかりました
フラグだらけのソースコードが目に浮かびます
>>254 でも一個でも弄っちゃうと動かなくなることがあるから不思議
全部覚えなくても参照出来るようになればいい
(´・ω・`)バックアップソフトでバックアップしてるからよう分からん
ちゃんと戻せる方法でバックアップが取れてればいいんじゃね。 某F痛とかRMANを自動化して使いやすくする(?)糞ソフトをアホみたいな価格で売りつけてくるけど RMANの知識無くちゃんとリカバリできるならアリかなーと思う。
>>252 バージョン上がる毎に新たなパラメータが追加されたり、過去のパラメータが非推奨になるから慣れるしかない。
設定項目はあるけど有効になりませんとか、設定しても別の設定として動作しますとか簡便してほしいわ。
12cの新機能って似たような名前ばかりで紛らわしいんやけど。 自動再最適化が statics feedback とかなんやねん。 今までどおりカーディナリティフィードバックでいいじゃん。 なんでわざわざ名前変えるねん。 「適応計画」と「動的な計画」が同じ意味とかなんじゃそりゃ。 動的サンプリングは動的統計に変わっとるくせに、 自動動的サンプリングはそのまんまの名称とかもうわけわからん。。。 誰か分かりやすく説明してくれよ。
分かりやすく説明すると、Oracle Masterの出題項目を増やすためだ
もともと、そういったパラメータ名や書式の統一感といったものを 考慮した開発をできる体制ではないのだろうさ なので、あるものは0が自動・あるものはautoが自動、みたいな USのOracleの曖昧な設計の元、下請けのインド人が思いつきで 実装している、みたいな 逆にそういうヘボい事しかできない連中に、今から名称とかを 統一しろとか求めるのは、逆に怖い
「一時履歴」と言われても、 「フラッシュバックデータアーカイブ」のことだとすぐに思いつかない。
「期間比較ADDMレポート」と「AWR期間比較レポート」の違いってなんだ?
これは訳し方が悪いんだ…と思って英語マニュアルの説明を読んだら 実は直訳で、英語側でも違いが分からんという事が往々にしてあるよな
フラッシュバック系の機能ってEnterpriseじゃないと意味ないよね
>>266 ADDM => 診断に基づいて推奨候補をあげてく。
AWR => 自分で読み解かないとならない。
今回のbashの脆弱性はExadataも影響受けるな。 パッチ配布が始まっているみたいだが。
そういやSQL*PlusでHOSTコマンド実行機能を使うと例の脆弱性出るけど、 純正JDBCでSQL中にHOSTコマンド埋め込んでも脆弱性出るね HOSTコマンドって、SQL*Plusで解釈されるだけだと思ってた
だれか12.1.0.2の"Full Database Caching"試した人いない?
いま運用してるバッチがクソ遅い。 二千万レコードのテーブルからselectやってて、おそろしく時間がかかる。 毎日四十万件ずつレコードが増える。 更新月ごととかで分割してったらいいんかな。はぁ。
分割=パーティショニングと想像してだが、パーティショニングというものは
パーティション単位でのexp/impなんかの運用を行いやすくするためのもので、
selectを高速にするための仕組みとしては考えられてないよ
>>240 のような落とし穴もある
276 :
NAME IS NULL :2014/10/01(水) 02:57:18.67 ID:cpFzsmL2
>>274 インデックスをうまく作ったり、select を見直したりで速くなることもあるよ。
なんて、そのぐらいは既にやってるか・・・
バグによるSQL遅延ネタはいっぱいあるからサポート情報探すといいかも 遅いだけって思ってたらオプティマイザが池沼だったって落ちがあるからな。 ビュー結合が遅延する問題で2週間デスマに陥って病みかけた件。
>>275 パーティションのメリットはそこだけじゃないから。分割キーの設計すればselectっていうか、SQL速くできる。
うちの職場、SE1ばかりだからパーティションなんて使ったことない。
>>276 インデックス張ってあるとこもselectでタイムアウトする。
そのテーブルを更新するバッチもデータの増加に対応しきれない。
そもそもサーバが十年以上前の代物だから、スマホよりスペック低くて限界を感じてる。
>>280 10年以上前って 32bit OSの頃だろうし Oracleのバージョンも古い上に
ストレージの糞遅いだろうからサーバ買いかえれ。
サーバが十年以上前の代物って、 Oracleのバージョンは何よ?
Unixは既に64bit版が主流だろ。
>>282 Oracleのバージョンは10だよ。言うまでもなく32bit。2chみるのに使ってるスマホより積んでるメモリが少ない。
なんでこんなボロいの動かし続けるのか理解できん。Oracleとかのライセンス払えないんなら、もうMYSQLとかでもいいんだけどなぁ。
Maria DB使って見て欲しい
いま、夜間バッチの実行完了するのが昼間。このままいけば、夜間バッチの完了が次の日の夜になりそうwww。
今のデスクトップにSSD乗せた方がいいんじゃないか?w
>>287 RAIDさえ組めてればデスクトップ+SSDはありかと。
10年前のサーバとか保守切れてるだろうし故障した時に業務停止してアウトだろ。
>>288 メーカーの保守なんてないし、OSのパッチ提供ももうすぐ打ち切り。まぁ、そんな些細なことは気にしないのだろう。
保守契約入る予算が確保できる見込みがないなら、最初からオープンソースのDBにしたほうがいいんかな。
障害の発生頻度がどんどん上がっているけれど、どうするんだろうな。
物理的に動かなくなってから、業務止めてリプレースすることになるんかな。
おじゃまします。 資格スレにオラクルスレがなぜかないことは確認済み。 当方院生M1でオラクルの実機はなし。Bronze取得のためのSQLの試験は94点で合格。 もう一つのDBA(ソフトの使い方とか)のほうが参考書をどう読んでも理解できず苦戦中。 受験記などのブログにはDBAは覚えゲーと書いてあるんですが、思い切って全部暗記するしかないんでしょうか。 情報処理系の大学院生で応用情報まで持ってますので一般的な知識はあります。 スレ違いかもしれませんがよろしくお願いします。
資格なんかなくても今はマンハッタンでExadataのDBAやってるぜw まあ、昔は日本ボラクルに一時的に籍をおいていた事もあったけどなw
>>290 Bronze DBAって、EnterpriseManagerの操作がメインなんだっけ?
アーキテクチャの理解をしたいなら、試験本じゃなくて、初級者向けのOracle解説本読んでみたら?
>>288 サーバ壊れて業務とまったらどうするの?
スキルレベルが上がった事もあるんだろうけど DBAは難易度が高くなるほど簡単だったのは俺だけか...
>>290 OTNライセンスでダウンロードして自由に使えるのがあるんだから、
手元で動かしながら勉強するといいよ。
俺はそれでPlatinumまで取った。仕事はないが。
Platinum取って仕事無いってコスパ悪すぎだろ...
>>295 Platinum試験って、どんな問題が出るんだ?
Platinumって、試験受けるのにNDAなかったっけ。 OEMが試験に入った時点で俺には無理ゲーになったわw
ガチガチなNDAあるよ 少しヒント出すと、 Oracle Linux Oracle Database Oracle EM が構築されてる環境でエラーに対する対処ができるか、とか あとは秘密
Platinumよりも、Silver+RACやLinuxのExpertの方がコスパいいよ
LinuxのExpert配信終了したがな
RACも前提条件Goldか研修一個だし、Gold+RACでいいのでは
303 :
290 :2014/10/04(土) 07:53:38.94 ID:???
290です。 レスありがとうございました。 やはり実機を触ったことがないので、「○○で始める絵でわかるオラクル」みたいな本を1冊買いました。 DBA試験のほうがSQL試験より難しく感じます。 ありがとうございました。
Oracle Database 12cは学習用で使うなら無料やで 11gでもeXpress Editionで試せるよ
>>299 休み中に環境ぶち壊されて修復させられたりするんだっけか...
実用レベルなら正直GOLDまでで十分だな。
働くならGold+Expert、業務に合わせたスペシャリスト 極めるならPlatinumは必須って感じ
バグ情報の収集調査が出来る人材がほしいけど単価高いんかな。 パッチセット適用してても解消してない不具合とか 解消してても隠しパラメータを変更しないとバグが回避できない問題とか盛りだくさん過ぎて にわかGOLD DBAには対処できんわ... サポートに情報かき集めて問い合わせても関係ない回答が帰ってきたりするし...
>>305 リファレンスとか見ながら作業できるのかな?
さすがに全コマンドのオプションとか覚えてないぞ。
>>308 マニュアルは全部見れるけど、どのへんに書いてあるかは知っておかないと
時間がぜんぜんないよ。
全額会社負担 (必要な講習 + 試験2回まで 旅費交通費含む)でPlatinumとったら 合格祝い一時金10万 + 該当製品バージョンのサポートが切れるまでの間 資格手当て月給1万 なんだけど だれも合格しない件について.... GOLDやRAC Expまでは結構簡単にみんな取れるけど Platinumの壁が高すぎる
Platinum特訓の講習うけたらなんとかなるんだろうか?
Platinum講習を受けた後、東京で遊んで帰ってくるアホが多いからな... 俺もその一人でお土産貰って帰ってきた。 来年早々に試験受けるつもりだけど、たぶん無理だろうな。
今回のYahooメールの障害なんだけど... PCI-ExpressのSSDさした安いIAサーバをInfinibandで接続してストレージ代わりにする事で DBのストレージのコストダウンとI/O高速化を実現(キリッ!)って大阪インサイトの講演会でやってたけど さすがにメールだから関係ないかな...
VirtualBoxに ・Oracle Linux 5.4 ・Oracle Database 11g R2 ・Oracle Enterprise Manager 11g Grid Control R1 入れたけど、Oracle Database 12cのPlatinum試験待ってた方がいい気がしてきた 仕事で12c使ってて家では11gってやってることがアホくさくなってきた
>>314 仕事で12c使ってるのか?!(マルチテナントで?)
うちは未だに11gR2
>>315 うちは先駆けみたいなもんだしな
マルチテナント使ってるよ〜
でもまだ勉強不足で難しく感じてるわ
Platinum特訓って、トレーニングキャンパス赤坂でしか受けれないのか? 田舎者の俺には無理じゃねーかよ。
>>293 既にしょっちゅう業務止まってるね。
あちこち壊れて動かなくなりつつあるけど、動くところを寄せ集めてしのいでる。
鯖を買うのが最も安上がりで確実だけど、それだと稟議がとおらないから、ポーズだけでもボロ鯖のパフォーマンスチューニングに挑戦するよ。
教科書に書いてあるパフォーマンスチューニングをひととおり勤務時間中にやってみる。
田舎者がPlatinum取る必要あるの?
>>320 常識的に考えたら業務停止し始めたらリプレースするのが普通なんだけど
経営者が「壊れるまで使え」っていう戦争時代の老害がやってる中小企業なら仕方ない...
>>321 Platinum取っておけばイザって時の再就職に捗るぞ。
9iだかの頃のプラチナは持ってるんだが
賞味期限切れだけど 製品バージョンを聞かれる事ってあんまり無いからな
9i Platinumは、旧制度の場合があるからね。
再認定制度なんて出来たんだね。 制度自体は悪くないけど、アホみたいに高い研修が義務化されると厳しい
あと、会社のアホ人事どもにこの再認定制度をキチっと周知させないと 更新は自腹負担って落ちが待ってると思う。
いまからSEONEで新規構築するなら 11.2.0.4+パッチ or 12.1.0.2+パッチどっちにします? 11.2のサポート期限見えてるけど、ある程度安定すればパッチは不要という案があって困っています。 ・12系は未導入のためまだスキルなし。 ・10年の長期保障サーバで性能はあまり必要ないから10年稼動させる予定。閉域網で不正アクセスリスクもなし。
>>330 R2+PSR+PSU+パッチでようやく安定して使える11gは先が短く、
12cはまだR2すら出ていない
10年稼動とかを考えると、まさに、今は時期が悪い
SE ONEでやれるんなら、PostgreSQLでも選んだらどうか
KROWNって完全にMOS配下になったの? 使い勝手はどう?
>>333 そうみたいだな。
使い勝手は変わらん。
日本独自で色々と調べてくれてたりするから、MOS配下に
なって嬉しいけどな。
>>332 10年稼動した9i鯖のハードウェア保守が切れそうなんで Oracleでそのまま移行しなきゃならんです。
ただ、9iを使いこなせるDBAがもういないので 最低でも10.2以上がほしいかなと。
11.2.0.3+PSU環境はSolaris SPARCで沢山稼動してますが、いまだにバグに当たること多いですね...
つ〜か、どんなバージョンでもバグがありまくるのがOracleだろうが。
そうそう。 10.2と言わず、11.2.0.4 + PSU にしとけばいいんじゃない? 更に踏み込んで 12c を使うってのも手かと。
そして、そのバージョンでは技術的な理由によりバグは改修されませんと突き放す
339 :
NAME IS NULL :2014/10/10(金) 19:49:53.63 ID:n6caZulh
VBのアプリのインストーラーを作っているのですが、 このインストーラーの中にxcopy版のODACを入れて環境変数のPATHにコピーしたパスを入れても インストーラー版と同じようには動いてくれません。 インストーラー版を一度入れてから、コピーして、インストーラー版のインストールしたものを消してみたら 動くのですが、何の違いがあるのか教えてください
社内で揉んだ結果、Solaris11.2 + SPARC + 11.2.0.4+PSUになりました。 安定稼動したらまた10年塩漬けします。
糠漬けでお願いします
>>340 11gって来年の7月頃で通常サポート終了じゃなかったけか?
>>343 それって11gR1じゃね?
11.2.0.3 → 2015年8月27日までパッチ提供
11.2.0.4 → 2018年1月までパッチ提供
Extended Supportが無償で受けられるっぽいから11.2.0.4なら何とかなる
10年塩漬けにするのなら12cの方が後々良さそうな気もっすけどな。
12.2.0.3くらいにならないと10年塩漬けは無理だと思う
一定時間経過するとプロセスが死ぬとかしょーもないバグがありそう
Standard Edition One使ってんだけど、 高速リカバリ領域っているの? 使い道が分からん
>>348 ちゃんと設計しないと、ストレージ空いてるのにOracleが止まってくれる。
正直一番ハマる要素だから、理由が無ければ使わずにセットアップしれ。
そんなにフラッシュバックテクノロジー使うこともないしねぇ。
ってか、障害発生時はデータベースを戻すだけで済む、というアーキテクチャのシステムって 何があってもどうにでもなる小規模システム以外だと、そんなに無いと思うんだよな
>>351 これ。
フラッシュバック使おうと思ったけど、ファイルとかその辺の整合性取れなくなって辞めたことある。
うちの会社でも、何も考えずにセットアップしたアホがアーカイブログ領域溢れさせた事例があるから
フラッシュバック領域はデフォルトでOFFにすべきだといつも思うわ。
10g時代からあるバグが11.2.0.3まで修正されてないってなんなん..
>>353 バグは夜更け過ぎに 仕様へと変わるだろう
355 :
353 :2014/10/13(月) 15:33:24.19 ID:???
exists/not existsをサブクエリで多様したPL/SQLを11.2.0.3に移行したら 5分ぐらいで終わってた処理が1時間たっても終わらなくて、挙句にTEMP領域食いつぶしてDB飛んだわ。 原因は分かったけど、こんなバグ(オプティマイザが池沼化する仕様レベル)が放置されてる意味が分からない...
開発環境の全く同じ環境(違うのはホスト名、IP、インスタンス名ぐらい)で2週間ガチで試験やったけど 一切発生せず、本番が稼動して数日したら突然発病したから対処できん。 最新のPSUも適用済だから安心してたけど、大はまりですわ。 しかしまぁ、みんなってバグ情報って事前に全部目を通してるの?
目を通したくないんで、とりあえず11g選んで最新のPSR・PSU・CPU当てて パフォーマンステストして出たものを叩く
クリティカルなイブ (危機的前夜): バグは夜更け過ぎに 仕様へと変わるだろう 再現無い 懲りない きっと意味はもう無い 一人きりの再現テスト 際限無い 本人いない ネスト深〜く 処理も重い 軽くなりそうもない 必ず今夜なら 言えそうな気がした ソースが無い 仕様も無い まだ引き継げず 気が重い 我が身へと降りかかる 間違えずに ソースコード管理 Git や Mercurial 制限無い 費用も無い バグは夜明け前には チケットが閉じられるだろう 再発無い 不安も無い きっとクレームは来ない 定時上がりのクリスマス・イブ Silent Night、電話は来ない
360 :
NAME IS NULL :2014/10/14(火) 04:53:00.64 ID:8FG4Ikb0
プログラムやSQLに罪は無いからな。 SEONEで十分だったけど、予算余ってたからEE使って見たくて500万も払った挙句これよ。
ルールベースはほんと残してほしかった…
12c Gold 持ってるのに、DBAの仕事が殆どない・・・。 悲しい。
まだ移行しかないじゃんw
そうだった。。。 7.5H労働 日給3万ぐらいで DBA+PL/SQLスキル持った人なら集中だけど安杉かな。 DBA畑の人はPL/SQLがわからなかったり、PL/SQL畑の人は最新のOracleに弱かったりして どちらも出来る人材がなかなかいないんだよ。
確かにPL/SQLなんてボラクルの研修で使ったぐらいだわw
367 :
365 :2014/10/15(水) 22:44:12.43 ID:???
PL/SQL屋さんは11gなのに旧コマンドのIMP/EXP使ってたり 複合INDEXはWHERE区の順番通りに張らないと動作しないとか化石みたいな事言う老害ばかりだし... INDEX1 A INDEX2 A B INDEX3 A B C 1個のテーブルに↑みたいなINDEXの張り方されてるの見て泣きそうになった。 最新のOracle技術を理解して駆使できるPL/SQL屋さんがマジほしい。
そりゃexp/impは単純だもの やれることは限られてるが覚えることも大して無い
369 :
365 :2014/10/15(水) 23:34:46.29 ID:???
開発環境にデータロードするのに半日待ってるんだよ... EXPDP/IMPDPなら15分もかからないのに。
お前の躾が足りない結果だ 自業自得
>>369 待って、それで、どうするんだ?
expdp/impdp使わせるような働きかけは、したのか?
してないんなら、お前が悪い
RMANのカタログは別筐体に作らんとダメなんかな。 ターゲットDBと同じ筐体に入れる場合は、 ターゲットDBバックアップ、そして カタログバックアップってやるの? これだとカタログ使わんほうがいいか(´・ω・`)
>>372 別に同一筐体でも構わんけどな。
ただ最低でもディスクは分けておけ。
カタログDBが吹っ飛んでもコントロールファイルが情報持っているから、
ぶっ壊れてもあんまり気にしないけどな。
そこまでしてカタログ使いたいメリットってあるんか?
推奨って書いてあったから(´・ω・`)
カタログがあるとバックアップ情報を長期間保存出来るという メリットがあるぐらいかな。 特に古いDBに戻す必要や、クローニングする必要が無いのなら コントロールファイルだけでも十分と言えば十分。
俺もバックアップ情報の管理ぐらいしか思いつかんかったけど 運用の手間増えるし、運用スキル無いなら辞めておいたほうが無難かと。
来年で11.2.0.3の保守切れるけど 11.2.0.4に上げますか? 四半期のPSUは必ず適用してる状況でいままで運用してきましたが... ハードウェアはあと6年保守があり交換する予定はありません。
>>378 安定稼働しているなら 11.2.0.3.x のままでいいんじゃない?
Oracleって今でもクライアントにOracleクライアントとか インストールしないといけないんですか?
(´・ω・`)11gって2015/1で終了でOK? 2018/1に伸ばすには追加料金いるんだっけ?
383 :
お :2014/10/23(木) 22:51:16.06 ID:???
サラッと嘘を言うなw 機能限定でいいなら間違いとは言わないが
コントロールファイルが全損したケースの復旧テストをやってみてるんだが、 どうも解せないことがある。 RMANで取得したコントロールファイルのバックアップからリストア&リカバリした場合、 RESETLOGSじゃないとオープンできないのだが、 alter database backup controlfile to で作成されたテキストファイルを元にコントロールファイルの再作成を行ったら、 RESETLOGSを付けなくてOK(むしろ付けたらダメ)だった。 そういうもんだと覚えるしかないのだろうけど、なんでそうなのかが解せない。 再作成のほうがリカバリ・コストが高そうな気がするのだが・・・。
>>385 RMANで取ったコントーロルファイルはSCNが古いから、リセットログで
ないとオープン出来ない。
テキストファイルで作成してなおかつDBFの数が変更していなかったら、
別にOPEN RESETLOGSで開く意味がない。
>>386 ということは、ぶっちゃけテキストファイルさえあれば、
バイナリ形式のバックアップは取らなくてよいということ?
データファイルとかの増減がないなら、それでもいいんじゃね。 実際、過去に制御ファイル全損したけど、DB作成時からの アラートログが全部残っていたので、そこからデータファイルの 変化を抜き出して手作業で制御ファイル作成して復旧。 とかしたことあるし。 (データファイル数が数百あったのはキツかったけど)
制御ファイルを再作成するほうが面倒だと思うんだが... RMANで制御ファイル戻した時はresetlogs付けるって体で覚えておけば それだけで済むような気がする。
RESETLOGS 指定でも OPEN できなかった時の絶望感・・・。 あれほど恐ろしいものはねぇ・・・。
たしかに alter database open resetlogsって打つときは みんなお祈りしながら様子を伺って、OPENした時はお祭り騒ぎだった。 別ストレージに分けてあるのに、制御ファイル2個ともrmで吹き飛ばしたアホは死ねよ。
ASMでDB作ったときinit.oraとか簡単に弄れるの?
>>387 そもそもRMANが無かった時代、制御ファイルのバックアップは
コールドで取るかもしくはテキストファイルで出力しか無かった。
>>390 7の時代から使ってるが、確かにプロダクションDBをopen resetlogsで
復旧させた事は3回しかない。
基本は完全媒体回復だしなぁ・・・。
>>392 別に普通のspfileと変わらないけど?
いまだにEXPDPのバックアップだけ取ってDB本体のバックアップをRMANなりで取ってないヤツ多杉で困る... CEのオペミスによる電源障害でサーバの電源落ちて起動させたら制御ファイルやられてOPENしなくなって 鯖メーカーと大揉めしてるのを横から見てたけど、謝罪と賠償を要求する前に自衛でバックアップっぐらい取っとけよって思った。
作りなおしてimpdpすればいちおう戻りはするよね(´・ω・`)
399 :
質問 :2014/10/26(日) 22:25:23.36 ID:???
DBCAでデータベースを構築するスクリプトを作ったのですが、 バッチスクリプトを起動するとパスワードを入力を求められてしまいあんまりスクリプト化した意味が無いです パスワード入力せず済むようにスクリプト改造するには どこを変更すれば良いのでしょうか? 12c/Windows
create databaseじゃあかんの?
deleteとTruncateのエクステント領域の解放についてご教示ください。 deleteではエクステント解放は行わず、 truncateだと解放は行いますが、 なぜこのような挙動になっているんでしょうか。 どっちにしろ、deleteの場合でも、エクステント解放しちゃえばいいじゃんと思うのですが。
エクステントを確保するという処理には、時間がかかるのだよ エクステントを解放せずにおけば、別の機会に動くであろうinsertやupdateの時に 必要なエクステントを改めて確保せずに済むからね deleteというものは、そういうもの たとえそれが全レコードdeleteであっても、そこは変わらない
そもそもtruncateはHWMだけ引き下げてるっしょ。 deleteは全件かどうかなんて、クエリ発行時点では不明なんだから。 かといって、deleteで条件なしならtruncateと同じ動作されたら、 暗黙commitでトランザクションとして問題が出てくるし。
>>401 今みたいにCPUもHDDも早くなかった時代の名残。
deleteは単にブロックにdeleteフラグを付けるだけにしている。
この方が同じ値が使われたりした場合に単にフラグを書き換える
だけで済むから、早い可能性があるというのが根底にある。
みんなDB構築したあと、DBIDって控えてる? コントロールファイル全損したとき、 DBID分からなかったら復旧できないのか?
>>406 RMANのログ見たらDBIDなんて分かるし。
>>406 制御ファイルの自動バックアップのファイル名に出力してる。
RMANのログでもいいし。
DBCAでインストールスクリプトを作る事可能だけど、 ディレクトリを移動しただけで動かなくなる (出力先ディレクトリがハードコーディングされてるから) 未だこの謎仕様が理解できぬ…
クリティカルなバグでも無く、ワークアラウンドがあるのなら 絶対に直さない。 これがボラクルクオリティ。
スクリプトやユーティリティの痒いとこに一切手が届かないのは伝統 全部新人が研修かなにかで作っているのだろう
412 :
406 :2014/10/29(水) 20:08:29.07 ID:???
>>408 >ファイル名に出力
おお、そんなことできるのか!って確認したら、
自分もしっかり%Fつけてた。
なーんだ、DBID含まれてるなんて知らなかったよ...orz
日付、DBID、そのファイルが何なのか(アーカイブログ or フルバックアップ) ぐらいはファイル名に付けて分かるようにしておくと後から楽かと。
あほ上司チームが今やってる連休中の停止メンテナンスで重要なテーブルをtruncateしちゃって祭りになってるんだが... 俺が裏でこっそりRMANでお守りバックアップ取ってるから時間指定の不完全リカバリすれば直前まで戻るんだろうけど おまいらならどうしますか? ・作業前のEXPDPはやってなかった模様。 ・RMANのオペレーションや直前まで不完全リカバリできるのを知ってるのは俺だけ。 (やつ等はアプリ開発専門でORACLE管理は素人に毛が生えた程度) ・火曜日の朝までに復旧すれば良い。 鬼電と大量のメールは帰省中って事で全部シカトしてます... 明日の貴重な休みを潰して名古屋から大阪まで帰って恩を売るかどうしたもんか...
(´・ω・`)休みはしっかり休む
417 :
406 :2014/11/03(月) 07:33:54.13 ID:???
>>414 「そんな重要なデータのバックアップを取っているなんて聞いてないぞ!
盗難にでもあって、情報漏えいが起きたらどうするんだ!」
とかってあとから難癖付けられる可能性があるならシカトしたほうが無難。
418 :
414 :2014/11/03(月) 09:31:05.19 ID:fbTbMwO/
おまいらおはよう。これから大阪に戻ります。 戻り交通費負担+次の日3連休明けに有給と代休組み合わせて1週間休みって事で交渉成立。
>>418 良い条件で何より。
意外と代休の方が用事を済ませられたり、行楽地も空いてたりで
個人的には好きだけどな笑
420 :
414 :2014/11/03(月) 18:30:06.75 ID:???
作業終了。 久しぶりのリカバリでset until time の書式忘れてググったけど 作業時間より移動時間のほうが長かった...
>>420 ロストする筈だったデータが復旧できて、
職場ではヒーロー扱いだろうな。
うらやましい。
>>420 set until timeの書式は覚えるの面倒だから、大体to_date使っている。
>>420 会社は外部からのアクセスは許していないんか?
確かに今どきは、VPNさえあればサーバの近くにいようがいまいがほとんど変わらんな。 コンソールはVPN経由でKVMアクセスすればいいし、バックアップもVTLだったら、テープの入れ替えもないし。
425 :
414 :2014/11/04(火) 22:18:40.39 ID:???
今までは外部からVPN張ってRDP接続だけできる穴が開いてたんだけど ベネッセの件で監査ソリューションを導入する年末までの間は穴が塞がれちゃった。 今まではVPN張ってRDPしたログはNW管理者がVPN接続ログ見ないと分からなかったけど、外部からVPN接続されたら管理職にメールを飛ばすらしい。 アホな対策を立てるヤツいるもんだ...と思った。
そこまでセキュリティ厳しくしてるのに、データ吹っ飛ばすなんて。
>外部からVPN接続されたら お前んとこは、サーバ直にVPN張ってんのかよwww
428 :
NAME IS NULL :2014/11/07(金) 20:13:09.23 ID:1orqkzab
セレクトしてループしてひとつずつfetchするとき ループの最後をNODATAFOUNDで検知するのは 真っ当な手順なの?
>>428 普通、
EXIT WHEN %NOTFOUND;
を使うんじゃね?
ってか、データが無かったらループに入る前に
カーソルをオープンした段階でNODATAFOUND例外が発生せんか?
みんなData Guardって使ってる? 問題なく実運用に堪えられるシロモノなんだろうか? 噂ではアーカイブギャップ出まくりで困るとかいう声も聞くのだが。。。
>>429 ありがとう
やっぱりこのソース普通じゃなかったんやな
あとで書いた人殴りに行くわ
>>430 普通に使っている。
10g以降はギャップが発生したらプライマリ見に行って必要ログを
勝手に転送して来てくれるし、普段は放っているな。
環境変数TNS_ADMINの有効範囲?を知りたく思ってます その変数を設定したOSユーザで起動している、例えばWebLogicやTomcat、 Java、Pro*Cのプログラムとかは参照してくれるものですか? 実は本番機のOracleなんだけど、1つインストールされたOracleを四社くらいで共用してて、 $ORACLE_HOME/network/admin/のtnsnames.oraを編集しようと思ったら、 週に一度の合同ミーティングで、運用を請け負ってる会社に書面で依頼したり、 その会社で実施決裁取るための資料とか作らされたりするので、すげー面倒… 逆に、うちに割り当てられたOSユーザの環境変数やホームディレクトリ内は自由に使えるので TNS_ADMIN設定して自分らでtnsnames.oraを管理しようかな、と
>>433 環境変数を理解しましょう。
としか言えないかな。
あと、影響を受けるのは tnsnames.ora だけではないので、
その辺も理解して期待した動作をしないかもしれない。
運用を請け負ってくれる会社がいる規模でええのぉ...
>>433 WeblogicやTomcatは自身のコンフィグファイルの中で
ORACLE_HOMEや接続子を書いていた気がしたぞ。
JDBCで接続しているのなら、tnsnames.oraとかは特に
参照していなかったはず。
RMANでブロック・メディア・リカバリの特訓をしたいんだけど、 この障害って、故意に発生させることって可能?
バイナリエディタとかで、うまいこと壊せればできるかも。 ある程度はデータファイルの構造を知ってないと難しいかもだけど。
>>437 Unixなら普通にddでbs指定して壊せばいい。
441 :
437 :2014/11/10(月) 07:40:48.26 ID:???
さんくす
memory_target パラメータ使って何か影響出たとかありますか?
自動メモリ管理は若干オーバヘッドあるから使わない人もいる。 うちはそんな事気にしないから使ってるけど。 初心者がありがちな罠として memory_target >> memory_max_targetにした後再起動して起動しなくなるとか。 バグ情報もいくつかあるから注意な。(ここでは書けないが酷いバグがある)
ASMで組んだDBって物理バックアップできんの?
>>443 やっぱまだバグだらけなんですね。
ありがとうございます。
>>444 ASMでミラーしないで、ハードミラーでも出来ますよ。
>>442 O/SがLinuxだとHugePagesが使えないというぐらいかな。
SGA_TARGETとPGA_AGGREGATE_TARGET使えば良いだけだけど。
>>444 普通に出来る。
EMCのBCVやTimefinderも普通に使える。
>>445 11gのPSRが上がる都度、精度や動作の修正入ってるからバグだらけ ってほど酷いものじゃないけどな。
Oracleのセミナーでも言われてた内容だから書くけど、11.2.0.3でハマったのが
バースト的にメモリ食う処理を動かすとmemory_max_target(上限値)を大きく超えて
サーバのメモリ使っちゃって、OSのメモリが枯渇したりSQLがこける事がある。
※安全率を高めに設定して遠慮気味なメモリを設定する事で回避したけど。
450 :
441 :2014/11/10(月) 23:36:35.21 ID:???
おかしい・・・。 わざとブロック障害起こしたのち、 ORA-01578: Oracleデータ・ブロックに障害が発生しました(ファイル番号6、ブロック番号186) と出たから、 RMAN> recover datafile 'データファイル名' block 186 ; として、 まだ ORA-01578: Oracleデータ・ブロックに障害が発生しました(ファイル番号6、ブロック番号187) ORA-01578: Oracleデータ・ブロックに障害が発生しました(ファイル番号6、ブロック番号188) ORA-01578: Oracleデータ・ブロックに障害が発生しました(ファイル番号6、ブロック番号189) ORA-01578: Oracleデータ・ブロックに障害が発生しました(ファイル番号6、ブロック番号190) ORA-01578: Oracleデータ・ブロックに障害が発生しました(ファイル番号6、ブロック番号191) と出るから、そのたびに RMAN> recover datafile 'データファイル名' block ブロック番号 ; と入力してたのだが、しまいには ORA-01115: ファイル(ブロック番号)からの読取りI/Oエラーが発生しました。 ORA-01110: データファイル6: 'データファイル名' ORA-27072: ファイルI/Oエラーが発生しました。 Additional information: 4 Additional information: 192 とか出てきて、にっちもさっちも行かず、仕方なく表領域単位でリストア&リカバリした。 これじゃブロック・メディア・リカバリが出来たとは言えない。 どないなっとんねん。。。
>>447 >>449 そうなんですね。10gからの移行なので無難にsga_targetとpga_aggregate_target使おうと思います。
>>450 つ〜かブロック障害起こしたらRMANでverifyして自動的に直せや。
RMAN > run { backup check logical validate database;}
SQL> select * from v$database_block_corruption;
RMAN> run { blockrecover corruption list;}
SQL> select * from v$database_block_corruption;
>>450 >>452 に追加。
RMAN > run { backup check logical validate database;}
SQL> select * from v$database_block_corruption;
blockrecover corruption listした後にもう一回validateしないと
v$database_block_corruptionはウプデートされないわ。
454 :
449 :2014/11/11(火) 00:37:36.78 ID:???
>>451 SGAとPGAの利用比率が分かってるならそっちが無難。
うちは9.2iからの移行でチューニング職人がいなかったから
とりあえずえいやーで自動管理にしたけど、メモリ割りあて過ぎる動作以外は不具合出てない。
>>450 時間があったらDataguard作ってみ?
自動的にスタンバイから健全なブロックを転送して勝手に直してくれるぞ。
sqldeveloperの使い方の質問はここでいいですか?
457 :
450 :2014/11/11(火) 21:14:12.89 ID:???
>>453 ちくしょう、validate しても ANALYZE しても
どうやっても v$database_block_corruption にでてこねぇ。。。
====
RMAN> backup check logical validate datafile 6 ;
backupが開始されました(開始時間: 2014/11/11 20:43:33)
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backupコマンド(ORA_DISK_1チャネル上)が11/11/2014 20:43:33で失敗しました
ORA-01122: データベース・ファイル6の照合検査でエラーが発生しました。
ORA-01110: データファイル6: '/u01/app/oracle/oradata/cdb/users01.dbf'
ORA-01200: 実ファイル・サイズ640が正しいサイズ640ブロックより小さくなっています。
SYS@cdb > select * from v$database_block_corruption ;
レコードが選択されませんでした。
====
もしかして普通はもっと違うメッセージが出る?
これ、BMR できへん状態か?
>>455 いずれDataguard作るつもり。
まずはその前段階で手動で出来るのかやってる状況。
>>457 ファイルヘッダーぶっ壊してO/Sですら読み込めなくなっちまってねぇか?
459 :
457 :2014/11/11(火) 23:08:09.76 ID:???
>>458 dd を実行する前後でファイルサイズが異なっていることに気付いた。
=====
$ ls -l users01.dbf
-rw-r----- 1 oracle oinstall 5251072 11月 11 22:49 2014 users01.dbf
$ dd if=/dev/zero of=users01.dbf bs=8192 seek=184 count=8
8+0 records in
8+0 records out
65536 bytes (66 kB) copied, 0.0012058 s, 54.4 MB/s
$ ls -l users01.dbf
-rw-r----- 1 oracle oinstall 1572864 11月 11 22:54 2014 users01.dbf
=====
440 に書かれているページのとおり dd をやったつもりなのだが、
もしかして dd の使い方、間違ってる?
>>459 それ、ddで思い切り全ファイルを上書きしてんじゃねぇかよ。
dd if=/dev/zero of=users01.dbf bs=2048 seek=10 count=2ぐらいで試してみたら?
>>459 例にある様にdba_extentsでsegmentのBlock ID確認して、それをseekの開始位置に指定してみ?
>>461 もちろんそうしているつもりなんだけどなぁ・・・。
=====
select segment_name,extent_id,file_id,block_id,blocks
from dba_extents
where segment_name = 'AAA';
SEGMENT_NA EXTENT_ID FILE_ID BLOCK_ID BLOCKS
---------- ---------- ---------- ---------- ----------
AAA 0 6 184 8 ←★今回壊そうとした箇所
AAA 1 6 192 8
AAA 2 6 200 8
AAA 3 6 208 8
AAA 4 6 216 8
AAA 5 6 224 8
AAA 6 6 232 8
=====
BLOCK_ID が 184 で BLOCKS が 8 だから、
seek が 184、count が 8 でいいんよな?
db_block_size もデフォの8192で作ってるから、bs も 8192 で間違いない筈。
$ dd if=/dev/zero of=users01.dbf bs=8192 seek=184 count=8
でもこれだと、結果的に184ブロック以降全てが壊れてしまってるんだよな?
うーむ・・・。
>>462 conv=notruncオプションが必要になってた・・・orz
dd if=/dev/zero of=users01.dbf bs=8192 seek=184 count=2 conv=notrunc
>>463 ありがとう、やっとできた。
dd なんて普段使わんから、例のサイトの手順を鵜呑みにしてたわ。
UNDOについて素朴な疑問なんだが。 例えばインスタンス停止中に一時表領域のデータファイルを削除してから インスタンスを起動すると、自動的に一時表領域のデータファイルを作成してくれるじゃない。 でも、UNDOのデータファイルはそうはいかず、エラーになる。 思ったのだが、 インスタンス停止中なんだらUNDOデータなんて必要ない(?)んだし、 一時データファイルと同じように自動作成してくれないのかな? 自動作成してくれないまでも、CREATE UNDO TABLESPACEできればよいのだが、 MOUNT 状態で CREATE UNDO TABLESPACE できるわけもなく、 通常のデータファイルと同じようにリストア&リカバリが必要になるときた。 UNDOデータファイルって、なんでそんなに重要なんだ? (オンライン中に障害起きたらさすがに停止するのはわかるが・・・。)
>>465 Unix環境の場合、一時表領域はsparse fileとして作成される。
undoはインスタンス障害やshutdown abortで落とした時に、
起動時に未コミットの情報を拾って来てリカバリに使う。
だから自動作成なんて危険過ぎて出来ない。
>>464 どうやらconv=notruncが必要なのはLinux/BSD系のddだからみたいだ。
昔は、Raw Deviceや11g R1のvoting diskのバックアップはddでないと
取れなかったりして使っていたんだけどな。
>>467 インスタンスを正常に shutdown した場合でも
UNDOデータファイルを損失してそのバックアップもなかったとしたら、
データベースの再構築が必要ってことになる?
>>469 その場合はundo管理を主導にして、system表領域のrbsでDBをオープンできるはずだ。
主導じゃなく手動の間違い。
なるほど。 制御ファイルにUNDOデータファイルの情報が残ってて、 そのままだと OPEN できないから、制御ファイルも作り直しだな。
別に制御ファイルを再作成する必要はないな。 1. 以下をinit.oraに設定 undo_management = manual event = '10513 trace name context forever, level 2' 2. DBをrestrictでopen SQL> startup restrict 3. 新規undo表領域の作成 SQL> create undo tablespace <新規undo表領域名> datafile <datafile> size 2000M; 4. 旧undo表領域の削除。 5. DBを停止 6. init.oraで新規作成したundo表領域を指定 7. 普通に起動
event 10513 とな?! さすがにそれは知らない。 Oracleには色んな裏ワザがあるな。
event 10513はrollbackを停止させる。 だからデフォルトundo表領域が無くてもDBをopen出来る。
9iシングルから11gRACにリプレイスする際に、ASMとかRAC用に増やしておかないといけないメモリコンポーネントってありますか。また、どれぐらい見積もればいいですか。
>>475 event 10513 を 実際に試してみたんだが、OPENできなかった。
=====
SYS@cdb > startup restrict pfile='/u01/app/oracle/product/12.1.0/dbhome_1/dbs/initcdb.ora'
ORACLEインスタンスが起動しました。
Total System Global Area 1048576000 bytes
Fixed Size 2932336 bytes
Variable Size 654311824 bytes
Database Buffers 385875968 bytes
Redo Buffers 5455872 bytes
データベースがマウントされました。
ORA-01157: データファイル4を識別/ロックできません -
DBWRトレース・ファイルを参照してください ORA-01110:
データファイル4: '/u01/app/oracle/oradata/cdb/undotbs01.dbf'
=====
以下、アラートログの抜粋。
event 10513 は問題なくPFILEで設定できているのが判るのだが。。。
=====
Using parameter settings in client-side pfile /u01/app/oracle/product/12.1.0/dbhome_1/dbs/initcdb.ora on machine tsdb101v
System parameters with non-default values:
processes = 300
event = "10513 trace name context forever, level 2" ←←←★
nls_language = "JAPANESE"
nls_territory = "JAPAN"
=====
なんか間違えてるかな?
もちろん undo_management も MANUAL にしてる。 processes = 300 event = "10513 trace name context forever, level 2" ←←←★ nls_language = "JAPANESE" nls_territory = "JAPAN" memory_target = 1000M control_files = "/u01/app/oracle/oradata/cdb/control01.ctl" control_files = "/u01/app/oracle/oradata/cdb/control02.ctl" db_block_size = 8192 compatible = "12.1.0.2.0" log_archive_dest_1 = "LOCATION=/u01/app/oracle/arch" log_archive_format = "%t_%s_%r.dbf" undo_management = "MANUAL" ←←←★
open しようとしてデータファイルがないのでエラー。 なのでmount状態で offline drop して忘れてもらう。 alter database datafile '/u01/app/oracle/oradata/cdb/undotbs01.dbf' offline drop;
>>479 ありがとう、出来た。
offline dropか。
ぐぐったら色々でてきて勉強になったわ。
ちょ、おまっ、それCDBw
>>476 昔はRACのPIブロック用にDB_CACHEを30%ぐらい多めに見積もれって
言われていたけど、最近はどうなんだろうな。
ASMインスタンスも出来ればSGAに1GBぐらい割り当てていないと、
ORA-04031が発生してハマる事がある。
>>482 レスありがとうございます。30%ですか。
ノードが多ければ多いほどそれだけキャッシュフュージョン発生するから多く見積もらなきゃいけないんですかね。
ASMのSGAはいいんですけど、DB側に乗るASM情報にどれぐらい必要かが気になるんですよね。
>>483 結局はアプリの特性にもよるし、実際に動かして設定して行く
しかないと思うよ。
ASMはSGAが小さいと、archivelogの削除とかを繰り返して行く
内にメモリーがフラグメント化してORA-4031が発生したりする。
>>481 ん?
何か問題あるのか?
UNDO障害にCDBも非CDBも関係ないと思うが。
12.1.0.2 で PDB 上の表領域の TSPITR を試してみてるんだが、 デフォルト表領域は TSPITR できない仕様なのか? RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: recoverコマンドが11/18/2014 21:35:29で失敗しました RMAN-03015: ストアド・スクリプトMemory Scriptにエラーが発生しました RMAN-03009: sqlコマンド(defaultチャネル上)が11/18/2014 21:35:28で失敗しました RMAN-11003: SQL文: drop tablespace USERS including contents keep datafiles cascade constraintsの解析/実行中に障害が発生しました。 ORA-12919: デフォルトの永続表領域は削除できません こんな感じでエラーになる。 試にデフォルトじゃない表領域でやってみると問題なくいけた。(drop tablespaceでエラーにならなかった) やり方が悪いんかな? 11g でも drop tablespace ってしてたっけか?
流したコマンドはこれ。 RMAN> RECOVER TABLESPACE pdb1:users until time '2014-11-18:21:23:00' AUXILIARY DESTINATION '/tmp/oracle_backup_test' ;
RMANの問題じゃなくデフォルト表領域を削除しようとしているから エラーになっている。 デフォルト表領域を別に作ってから試してみたら良い。
12cのリカバリも覚えんとあかんか...
490 :
486 :2014/11/19(水) 21:35:16.44 ID:???
>>488 うむ、それなら出来るな。
RMANもそこまで自動で面倒みてくれないわけね。
いまから12c使わない理由ってある?
494 :
NAME IS NULL :2014/11/23(日) 09:38:53.36 ID:3x0NhpTB
8i->11gR2移行で質問です。 PL/SQLや他プログラムへの影響を調査するためには、方針としてはどうすれば良いでしょうか? 色々調べてみたところ、10以降はGROUP BYに必ず明示的ORDER BYが必要と分かりましたが、 他はアップグレードガイドに記載の初期化パラメータの非推奨/廃止の対象で全grepを想定しています。
テスト機で試す。それしかないだろ。 ドキュメントは、どう直せばいいかわからなくなった時にみる。
まだ9i→11gは結構みたけど 8iがまだ動いてるんだね。 ハード側が腐って朽ち果ててそうな感じだが..
11gRACでの最小SGAサイズって推奨とかある?
>>498 自動メモリ管理であと勝手によろしく!で良いんじゃね。
うちSE RAC 3セットは全部その設定で2年近く問題起きてない@11.2.0.3 パッチ10 Solaris SPARC
SGA TARGETをあらかじめ設定しておかないとPGAの利用が増えたときか何かで
ORA-xxxx (ORA-04031だったかその辺のメモリ割り当て不可)のエラーが出るって罠があるけどうちの環境じゃ出たこと無い。
>>498 つ〜か、そんなのアプリの特性によるだろ。
>>500 インスタンス1個と仮定したら、OSとか他ミドルの最低分除いた全部。
>>502 そういう雑な設計をして12c対応が面倒になってる案件をよく見る
誰かフラッシュバックデータアーカイブ使った人おる? なんかうまくいかんわー。 ====== PDBADMIN@PDB1 > ALTER TABLE BBB FLASHBACK ARCHIVE FDA1 ; 表が変更されました。 PDBADMIN@PDB1 > show user ; ユーザーは"PDBADMIN"です。 PDBADMIN@PDB1 > SELECT * FROM USER_FLASHBACK_ARCHIVE_TABLES; TABLE_NAME OWNER_NAME FLASHBACK_ARCHIVE_NA ARCHIVE_TABLE_NAME STATUS ---------- ---------- -------------------- -------------------- ---------- BBB PDBADMIN FDA1 SYS_FBA_HIST_92008 ENABLED PDBADMIN@PDB1 > SELECT * FROM BBB AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '1' MINUTE); SELECT * FROM BBB AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '1' MINUTE) * 行1でエラーが発生しました。: ORA-00942: 表またはビューが存在しません。 PDBADMIN@PDB1 > desc SYS_FBA_HIST_92008 ; ERROR: ORA-04043: オブジェクトSYS_FBA_HIST_92008 は存在しません。 PDBADMIN@PDB1 > desc PDBADMIN.SYS_FBA_HIST_92008 ; ERROR: ORA-04043: オブジェクトPDBADMIN.SYS_FBA_HIST_92008 は存在しません。 ====== こんな感じで、どうもアーカイブ先(ARCHIVE_TABLE_NAME)の SYS_FBA_HIST_92008っつーオブジェクトが無い(見えない?)ようだ。 試しにもう一回 ALTER TABLE 〜 FLASHBACK ARCHIVEを実行しても既に有効化されてるとか出てくるし・・・。 ====== PDBADMIN@PDB1 > ALTER TABLE BBB FLASHBACK ARCHIVE FDA1 ; ALTER TABLE BBB FLASHBACK ARCHIVE FDA1 * 行1でエラーが発生しました。: ORA-55600: 表"PDBADMIN"."BBB"はフラッシュバック・アーカイブに対してすでに有効化されています ====== なんでだぁ?
505 :
504 :2014/11/25(火) 22:10:24.16 ID:???
なんだこいつら? ======= PDBADMIN@PDB1 > select segment_name from dba_extents where tablespace_name='FDA1_TS1' ; SEGMENT_NAME -------------------------------------------------------------------------------- SYS_FBA_DDL_COLMAP_92008 SYS_FBA_TCRV_92008 SYS_FBA_TCRV_IDX_92008 ======= 92008って名前から察するに、SYS_FBA_HIST_92008 の仲間かぁ? ※ちなみにバージョンは 12.1.0.2
>>504 RETENTION指定していないからじゃね?
>>503 OSとミドルと常駐アプリ除いた全部割り当てって楽で良いような気がするけど
12c対応にすると面倒なん?
>>504 普通に上手くいくけどな。
SQL> create flashback archive default boe tablespace users quota 1m retention 1 day;
Flashback archive created.
SQL> create table hoge (boge char(10));
Table created.
SQL> insert into hoge values (1);
1 row created.
SQL> insert into hoge values (2);
1 row created.
SQL> select * from hoge as of timestamp(systimestamp - interval '1' minute);
BOGE
----------
1
509 :
504 :2014/11/26(水) 07:46:01.37 ID:???
>>506 こんな感じで指定してる。
SQL> CREATE FLASHBACK ARCHIVE DEFAULT FDA1 TABLESPACE FDA1_TS1 RETENTION 1 YEAR ;
SQL> GRANT FLASHBACK ARCHIVE ON FDA1 TO PDBADMIN ;
>>508 それ 、
ALTER TABLE hoge FLASHBACK ARCHIVE boe ;
してないから、フラッシュバックデータアーカイブを利用しるんじゃなく
UNDOを使った普通のフラッシュバック問い合わせが行われてるんじゃない?
それならこっちも出来るんだよなぁ。
510 :
504 :2014/11/26(水) 20:07:22.51 ID:???
自己解決しました。 アーカイブデータの格納先表領域が小さすぎただけだった...orz アラートログは確認していたのだが、 cdb_w004_5255.trc とかいうバックグラウンドプロセスのトレースログが増大しているのに今、気が付いた。 中を見ると、 ======= Flashback Archive: Error ORA-1658 in SQL create table "PDBADMIN".SYS_FBA_HIST_92008 (RID VARCHAR2(4000), STARTSCN NUMBER, ENDSCN NUMBER, XID RAW(8), OPERATION VARCHAR2(1), "BBB" TIMESTAMP(6) ) tablespace FDA1_TS1 partition by range (ENDSCN) (partition high_part values less than (MAXVALUE)) ======= こんな風に、ORA-1658 が出ていた。 ちくしょう、こんなつまらないことに躓くとは。 面目ねぇ。。。
今度更改のシステムでオンライン24時間のシステムで朝方に統計情報取るように変わったんだがそれって普通なのだろうか?
>>511 オンラインの負荷が高くなる前に向けて統計情報取るって普通だよ。
>>511 朝方に終わるんならな
終わるんなら、朝方にやっても構わないだろう
警告は、したぞ
DBCAの話なんだが、 11gの時は最後のほうの画面で、サマリーをHTML形式で保存できたのだが、 12c からはそのボタンが見当たらないのだが、、、無くなったのか? でもヘルプボタンを押したら、「HTML形式で保存することができます」 みたいなこと書いてるし、、、
>>514 確かにボタンが無くなっているな。
自動的に作成されているとか?
11gでASMを利用する際ですが、FRAのDGって必須でしょうか。 アーカイブREDOやRMANバックアップをDBとは違うストレージ(NFSマウント)に配置しようと思ってます。
>>517 ありがとうございます。非常に助かりました。
>>514 一回テンプレートとして保存。
んで、dbcaのTemplate Managementから対象DBを選択してshow detailやると
HTMLで保存出来る。
520 :
514 :2014/12/02(火) 07:24:01.51 ID:???
>>519 あんがと。今度やってみるわ。
なんでそんな面倒なことになったんだろうね?
一貫性バックアップを取った@という地点と、Aという地点があったとする。 (あ、リカバリカタログ使用ね) まず@の地点にDB全体を RESTORE&RECOVERYして OPEN RESETLOGS した。 次に、Aの地点にDB全体を RESTORE しようとすると、 $ rman target / catalog ****/****@**** RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: restoreコマンドが12/02/2014 22:48:16で失敗しました RMAN-06026: 見つからないターゲットがあります - リストアを中止します RMAN-06023: データファイル15をリストアするためのバックアップまたはコピーが見つかりません RMAN-06023: データファイル6をリストアするためのバックアップまたはコピーが見つかりません RMAN-06023: データファイル3をリストアするためのバックアップまたはコピーが見つかりません RMAN-06023: データファイル1をリストアするためのバックアップまたはコピーが見つかりません といって怒られた。 どうもリカバリカタログ内の情報がAの地点と違っているようなので、 とりあえず制御ファイルもAの地点に戻して RESYNC CATALOG すると、 RMAN> RESYNC CATALOG ; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: resyncコマンド(defaultチャネル上)が12/02/2014 22:48:20で失敗しました ORA-00236: スナップショット処理不可: マウントされた制御ファイルはバックアップです。 とかって怒られた。 なんじゃそりゃと思って、 リカバリカタログを使わず $ rman target / で接続すると、RESTORE できた。 んで、RESYNC CATALOG すると、 RMAN> RESYNC CATALOG ; データベースの新しいインカネーションがリカバリ・カタログに登録されました リカバリ・カタログの完全再同期を開始しています 完全再同期が完了しました とすんなり行き、RECOVERして OPEN RESETLOGS も出来てめでたしめでたし。 ・・・なのだが、どうも腑に落ちない。 リカバリカタログに接続している場合、 ターゲットDBの制御ファイルで強制的に RESYNC CATALOG することは出来ないのだろうか?
>>521 open resetlogsするとインカーネーションが新しくなっているから
カタログが持っている情報とバッティングしてしまう。
そういった場合はカタログから1回unregisterして、registerする
しか無い。
523 :
521 :2014/12/04(木) 07:21:37.85 ID:???
524 :
NAME IS NULL :2014/12/05(金) 21:04:15.64 ID:KSDCyJ4/
oracleで、truncate処理中のテーブルに対してselectを投げたら、ORA-08103(オブジェクトは存在しません)が発生しました。 truncateはテーブルのデータを削除するものなので、オブジェクトが存在しない、というエラーは違和感があるのですが、、一体どういう事なのでしょうか??
みなさんは12cをもう本番運用していますか? 12.1.0.2のSE Oneってまだ出てないですよね? 2012R2でのクラサバなんですが11.2.0.4しか現時点では選択しないですよね
Release 2待ち 12.1.0.2がターミナル・リリースらしいし少し待てば来るさ
〉〉525 契約出来ない環境にあり、見ることが出来ません、、、 教えて下さいm(_ _)m
>>525 契約出来ない環境にあり、見ることができません、、、
教えて下さいm(_ _)m
>>525 処理の中で、一旦テーブル自体が消えているのでしょうか?
テーブルは残ってて、でもselect処理が見に行く領域にはテーブルは無くなる?
それとも、エラー08103がいうオブジェクトというのは、テーブルではなく、レコードの事も指す?
Oracle完全初心者で、、回答を急かされて困っております(´・_・`)
どうか、宜しくお願いしますm(_ _)m
>>527 12.1.0.2がターミナルリリースってホント?
どっか書いてる?
>>524 truncateでそうなるのは正常だから気にするな
533 :
525 :2014/12/06(土) 10:15:46.74 ID:???
>>530 テーブルをTRUNCATEする場合、DROP TABLE できる権限が必要です。
つまり TRUNCATE は DDL であり、DROP TABLE と同レベルだと考えて下さい。
>処理の中で、一旦テーブル自体が消えているのでしょうか?
>テーブルは残ってて、でもselect処理が見に行く領域にはテーブルは無くなる?
>それとも、エラー08103がいうオブジェクトというのは、テーブルではなく、レコードの事も指す?
厳密には違いますが、この中で一番近しいのは1番目でしょうか。
(DROP TABLE 権限が必要なため)
DLL の TRUNCATE ではなく、DML の DELETE 文を使うことは出来ませんか?
そもそも SELECT されることが分かっている状態で TRUNCATE を実行することが間違いです。
(TRUNCATE を DROP に置き換えて考えてみて下さい。
SELECT 中に テーブルが DROP されたら、そりゃオブジェクトがなくなりますよね)
>>530 ありがとうございます。
結局、dropと同じレベルの事を行っているんですね。
なぜ、オブジェクトが無いってエラーになるの?
truncateだからテーブル=オブジェクトはあるでしょ?
と聞かれて困ってました。
>>524 仕様だよ。上の人もレスしてるけど、そもそもtruncate中にselectさせないようにしないと。
パーティションできるならパーティションtruncateするとか。
>>536 ありがとうございます。
仕様なんですね。
その方はエラーが発生した事ではなく、メッセージ文自体が気になってるみたいで、、
truncate tableはいったんテーブルを削除してから新しいテーブルを再作成する流れでテーブルを空にする、って事ですかね!
truncate中のselectについては見直さなきゃなと思います。
>>537 truncateすると表のdata_object_idが変わるから。
以上。
539 :
533 :2014/12/06(土) 13:34:30.88 ID:???
>>537 >truncate tableはいったんテーブルを削除してから新しいテーブルを再作成する流れでテーブルを空にする、って事ですかね!
う〜ん、「厳密には違う」と言ったのはそこなんですよね。
正確には 538 の言うとおりです。
>>538 >>539 ありがとうございます。
data_object_idが変わり、今までアクセスしていたdata_object_idでアクセス出来なくなってしまったので、オブジェクトが無い旨のメッセージが出力されたのですね。
(´・ω・`) 昨日の二次会後に本番までやっちまったよ!って電話で話してたら新人事務のお姉さんからガチでセクハラ扱いされた件... 最初意味が分からず、後から意味を悟って お、おう・・・ ってなったわ。 ※リリースしたアプリのバグで計算ミスってる値を大至急修正するために、開発機でOKなら即効で本番やれという緊急指令があり 車通勤で酒飲めない俺だけが二次会終わった後に会社戻らされ緊急作業を実施。 翌朝になって「修正ちょっと待った!」って言われた電話に対して...
Data Guard (フィジカルスタンバイ)を構築してみたのだが、 プライマリからスタンバイに転送された適用済みのアーカイブログって、みんなどう処理してる? 消すのは簡単なんだが、なんとなく躊躇ってしまう私はチキン野郎。
>>541 彼女の前で『本番でインサートしちまってるよっ!』って
叫んで見てくれ(笑)
>>542 一日分ぐらい溜めておいてから消している。
アーカイブログだってプライマリかスタンバイのどっちかで二次記憶装置に
バックアップしているだろ?
545 :
542 :2014/12/07(日) 09:39:20.64 ID:???
>>544 データベースのバックアップは、プライマリとスタンバイの両方で取るべきだろうか?
両方で取るなら、両方で PLUS ARCHIVELOG DELETE INPUT しとけばいいけど、
例えばプライマリだけで取る場合、PLUS ARCHIVELOG DELETE INPUT しても
プライマリ側のアーカイブログは消えるがスタンバイ側のアーカイブログは残るよな?
それともスタンバイ側のアーカイブログも一緒に消す方法があるんかな?
調べてみると、
CONFIGURE ARCHIVELOG DELETION POLICY TO applied on all standby ;
がそれらしいことを書いていたのだが、実際に試してみても消えなかった。
>>545 バックアップはプライマリで録っていれば十分だろ。
スタンバイ側のアーカイブログも普通にrman使って消している。
以下スタンバイ側の作業
1. rman target /
2. CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
後は以下のシェルをcronで定期的に流している。
--
!#/bin/sh
rman target / <<:EOF
run {
delete noprompt archivelog all;
}
quit;
:EOF
--
>>546 やっぱりプライマリとスタンバイの両方で消さないとダメか。
プライマリからスタンバイのアーカイブログを消すことはできないってことね。
Data Guard でリカバリカタログを使ってるのだが、 スタンバイの再同期がうまくいかない。 なんでだろう? 以下、プライマリで実施 ===== $ rman target / catalog ****/****@rcat Recovery Manager: Release 12.1.0.2.0 - Production on 日 12月 7 20:30:47 2014 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. ターゲット・データベース: CDB (データベースID=1977747161)に接続されました リカバリ・カタログ・データベースに接続されました。 RMAN> list db_unique_name of database ; データベースのリスト DBキー DB名 DB ID データベース・ロール Db_unique_name ------- ------- ----------------- --------------- ------------------ 7593 CDB 1977747161 PRIMARY CDB 7593 CDB 1977747161 STANDBY CDBAS RMAN> show DB_UNIQUE_NAME ; db_unique_name CDBのデータベースにおけるRMAN構成パラメータ: CONFIGURE DB_UNIQUE_NAME 'cdbas' CONNECT IDENTIFIER 'CDBAS'; MAN> resync catalog from db_unique_name cdbas ; データベースDB_UNIQUE_NAME CDBASから再同期しています RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: resync from db_unique_nameコマンド(defaultチャネル上)が12/07/2014 20:29:25で失敗しました ORA-17629: リモート・データベース・サーバーに接続できません ORA-17627: ORA-00942: 表またはビューが存在しません。 ===== 「表またはビューが存在しません。」ってなんやねん。 これだけじゃ、どこのなんの表を見にいってんのか、わからんやないか?? ちなみにプライマリの再同期は問題なく実行できた。 ===== RMAN> resync catalog from db_unique_name cdb ; リカバリ・カタログの完全再同期を開始しています 完全再同期が完了しました ===== なんでだろう? 手に負えんわ、こりゃ。。。
549 :
NAME IS NULL :2014/12/07(日) 22:47:45.12 ID:5Ke/4ejV
A,1,1 A,2,5 A,3,3 B,1,1 B,2,3 B,3,10 という結果のSQLを カラム名として 名 1 , 2 , 3 データとして A 1 , 5 , 3 B 1 , 3 , 10 上記のように名前ごとにまとめた形で 一つの行として出したい表示をしたいのですが だれか教えてください
>>548 rman target sys/<sysのパスワード> catalog ****/****@rcat
って、明示的にsysでログインして試して見てくれ。
>>547 まあ、プライマリ側からスタンバイ側にrmanでリモートログインしてって
事も出来るけど、それに意味があるかというと・・・。
>>549 一発のSQL文でやろうとするのは無理なんじゃねぇの?
viewとかと組み合わせてやってみたら?
553 :
548 :2014/12/08(月) 21:08:36.76 ID:???
>>550 なんかメッセージが変わった。
======
RMAN> resync catalog from db_unique_name cdbas ;
データベースDB_UNIQUE_NAME CDBASから再同期しています
starting partial resync of recovery catalog
ORA-20079: full resync from primary database is not done
doing automatic resync from primary
automatic resync from primary done
starting partial resync of recovery catalog
partial resync complete
======
どうして明示的に sys/パスワード で入るといけるんだ?
バグか?
554 :
548 :2014/12/08(月) 21:09:03.73 ID:???
partial resync complete とは出てるけど、ORA-20079 が出てるので もう一回やってみた。 ====== RMAN> resync catalog from db_unique_name cdbas ; データベースDB_UNIQUE_NAME CDBASから再同期しています starting partial resync of recovery catalog ORA-20079: full resync from primary database is not done doing automatic resync from primary RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: resync from db_unique_nameコマンド(defaultチャネル上)が12/08/2014 20:05:59で失敗しました RMAN-20051: データファイル再同期が完了していません ====== ありゃ? ====== RMAN> resync catalog ; リカバリ・カタログの完全再同期を開始しています RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: resyncコマンド(defaultチャネル上)が12/08/2014 20:17:01で失敗しました RMAN-20051: データファイル再同期が完了していません ====== おおう?! 普通の resync catalog も通らなくなったぞ。 仕方ないのでログアウトして、今まで通りのやり方( / でログイン)でやると、 ====== RMAN> resync catalog ; リカバリ・カタログの完全再同期を開始しています 完全再同期が完了しました ====== うまく動いた。 もしかしてこれって、バグ 19724787 あたりにヒットしてる?
>>554 そうだな。
ずっとエンハンスリクエストが出ているが、ワークアラウンドが
あるから放置されている。
つ、使えねぇ。。。 これに費やした数時間を返してほしいわw
>>549 最近まともなSQL書いていなから、すっかり忘れているわ。
with句とかとうまく組み合わせれば出来そうな気もするけど。
誰かエロい人頼む(笑)
>>549 Pivot
10gなら名前でgroup-byして、各カラムはsum(case when ...)で対応する値のみ取得。
DGMGRL で手動スイッチオーバーを試してみたんだが、 新プライマリは起動してくるんだが、新スタンバイのほうが起動してこない。 ====== DGMGRL> SWITCHOVER TO 'cdbas' 現在スイッチオーバーを実行しています。お待ちください... 操作上、インスタンス"cdbas" (データベース"cdbas")を接続する必要があります インスタンス"cdbas"に接続中... SYSDBAとして接続しました。 新しいプライマリ・データベース"cdbas"がオープン中です... 操作上、インスタンス"cdb" (データベース"cdb")を起動する必要があります インスタンス"cdb"の起動中... ====== このまましばらく待つと、 ====== (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tsdb111v.oracle12c.jp)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=cdb_DGMGRL)(INSTANCE_NAME=cdb)(SERVER=DEDICATED)))でデータベースに接続できません ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していません 失敗しました。 警告: Oracleにはもう接続されていません。 スイッチオーバーを終了するには次のステップを実行してください: インスタンス"cdb" (データベース"cdb")を起動します ====== となった。 アラートログには、 ====== Switchover complete. Database shutdown required Completed: ALTER DATABASE SWITCHOVER TO 'cdbas' Wed Dec 10 22:18:33 2014 OCISessionBegin with PasswordVerifier succeeded Wed Dec 10 22:18:34 2014 Data Guard Broker operation requires restart; shutting down instance now DMON (ospid: 2860): terminating the instance Wed Dec 10 22:18:35 2014 Instance terminated by DMON, pid = 2860 ====== とシャットダウンされた形跡があり、このまま起動してこない。 新スタンバイを手動で起動すれば問題ないのだが、 スイッチオーバーって、こういう物なのか? それとも何か設定が足りないのか? (「インスタンス"cdb"の起動中...」ってメッセージが出てるから、 てっきり新スタンバイの起動も行ってくれるものだと期待しているのだが)
>>559 プライマリ側からスタンバイ側にSYSDBAで接続出来るか?
パスワードファイルとかちゃんと正しく設定されてる?
>>559 プライマリとスタンバイのlinstener.oraにGLOBAL_DBNAMEが
きちんと記述されていない可能性が大。
562 :
NAME IS NULL :2014/12/11(木) 11:00:58.22 ID:48xV1tZI
☆☆☆☆☆
/ / / | \ ヽ
/ / / / / || | i ヽ i
i / / / / / / || || |│ |ノス
|// / /___, -一ァ| /! |ト、|│ | | く」
|,-‐¬  ̄---┘'7 |! ハ! |,、-┼十|! | | |
, -‐ ''" し' '´_ /,ィ二l |ト、/!ヽト、\_ヽ!|!l | ハ |
,r/ __ ,イ|リ ヾハ! ヽ! ,ィ⌒ヾミリノ!/リ | ☆ 自民党、グッジョブですわ。 ☆
/ ||ヽ -' / ̄ )` __ |ヒノ:} '` ,イ/ | |
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html ,r ' ヾ、 ,-、____ , イ ̄,r==- ==-' レ' /| |
/ ヽ `ーソ ' | |ト、,ヘ ′"" "" / / || | ☆ 日本国民の皆様、12月14日(日)の
. / \_ / | ハ ヽ`゙'ヘ ' '__. ィ / / | | | 『衆議院議員総選挙』に必ず投票にいきましょう。 ☆
/ / / | ヽ 川\ ヾ三ニ‐'′//! | | | |
/ / / 八 \川| |`ト- .. __ , イ‐ァヘ | | || |!
/ / / / \ \ 「`ー- 、 / .〉 ト、| ヽ、
,イ /-─=¬ニヘ、_ \ 厂\ 厂ヽ /!| | `ー=ヘ
-‐  ̄ /─ '  ̄ ├- ヽ\ \ノ\ \ 人 ハ!ヽ || |-┤ ヽ
/ /!‐-- | |\ ト、_`ヽ oヽ ト、! || |‐┤- ヽ
// 〉 __ / ├‐- || | 川-‐ | | 厂7! ハ! ├:┤  ̄ヽ
/ / ー ─  ̄ ├‐- リ || ハ!ヘ | | ト┤|/′ ヾ,┤ ゙i_
‐ ' 〉‐- | / /\ .|o | /ヽ/(′ ∨ \
‐--─ ──-r、___-、 /ー_ {( '´>、! /ヽ/ |\ \
563 :
559 :2014/12/11(木) 20:43:07.07 ID:???
>>561 あんたスゲェ・・・。
ありがとう、ドンピシャだ。
エラーメッセージメッセージどおり、プライマリを、
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME=cdb_DGMGRL) ←★
(ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME=cdb)
)
スタンバイを、
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME=cdbas_DGMGRL) ←★
(ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME=cdbas)
)
にすると問題なくいけた。
しかし、聞いて欲しい。
今回の作業は、
http://www.insight-tec.com/mailmagazine/ora3/vol381.html を参考にしながら構築したのだが、〜_DGMDRL っていうサービス名については出てきてない。
〜_DGB ってサービスは DMON を起動する時に有効になるのを確認したが、
〜_DGMDRL って何者なんだ?
>>563 データガードブローカー特有のデフォルトの名前解決方法なんだろ。
もし_DGMGRLをlisnter.oraに使いたくなかったら、プライマリとスタンバイの
両方で接続情報を登録する必要がある。
DGMGRL> edit database <プライマリSID> set property staticconnectidentifier='プライマリへの接続子';
DGMGRL> edit database <スタンバイSID> set property staticconnectidentifier='スタンバイへの接続子';
StaticConnectIdentifier か。 確かに出てるな。 右に長いから、完全に見落としてたわ。
Data Guard を使う場合、 一般的にクライアント側の tnsnames.ora に書く接続記述子は、 (ADDRESS_LIST= (LOAD_BALANCE=off) (FAILOVER=on) (ADDRESS=(プライマリの情報)) (ADDRESS=(スタンバイの情報))) とするもんなんじゃろうか? でも RAC と違って、障害が起きても VIP がフェイルオーバーされるわけじゃないから、 プライマリに接続を試みて TCP コネクション確立がタイムアウトするまで、 スタンバイには接続できないよな? って理解でおk?
>>566 するもんだ。
なんのためにプライマリサイトでローカルとリモートリスナーを
立ち上げている?
569 :
名無しさん@そうだ選挙に行こう :2014/12/13(土) 15:08:07.90 ID:iNKauH3B
皆様こんにちは、 Windows2012serverでoracle12cを 使用しています。 しかしwindows updateでDB初期化に失敗しましたというエラーが出て接続できなくなります。2回目です。 sys接続はできるのですが、 再インストールしか方法はないでしょうか。なにかご存じでしたら教えて下さい。 よろしくお願いいたします。
Windows Updateの方を消した方がよくね
571 :
名無しさん@そうだ選挙に行こう :2014/12/13(土) 15:13:28.61 ID:iNKauH3B
ですね。
すみません あるSQLで結果が0件の場合0を表示 結果がある場合(その場合は必ず結果は1件のみ)はその結果を表示したいのですが やり方がわかりません NVL(結果,0)でやっても結果が無い状態だと0にならないし カウントを駆使しようとしてもなかなか思うようにはなりません 教えてください
他スレがあったので572は却下します
SELECT (SELECT COUNT(*) FROM TAB) FROM DUAL;
↑ごめん、これは違うな
結構難しいかも? SQL> create table hoge(boe char(10)); SQL> insert into hoge values ('1'); SQL> insert into hoge values ('2'); SQL> select nvl((select boe from hoge where boe='1'),'0') from dual; NVL((SELEC ---------- 1 1 row selected. SQL> select nvl((select boe from hoge where boe='4'),'0') from dual; NVL((SELEC ---------- 0 1 row selected.
PL/SQLのIFで書いたら阿寒の?
何が問題なのかわからない。 普通に出るぞ? PDBADMIN@PDB1 > create table ccc ( ccc number ) ; 表が作成されました。 PDBADMIN@PDB1 > select nvl((select * from ccc), 0) from dual ; NVL((SELECT*FROMCCC),0) ----------------------- 0 PDBADMIN@PDB1 > insert into ccc values ( 1 ) ; 1行が作成されました。 PDBADMIN@PDB1 > select nvl((select * from ccc), 0) from dual ; NVL((SELECT*FROMCCC),0) ----------------------- 1
とてもざっくりした質問で恐縮なんだけど 一応Silver資格とシングルの実務経験ありという前提で RACまったくわかりませんから勉強するにはどうしたらいいの? 黒本読むか研修受けるくらいしか選択肢ないのかな 実機触るにも環境構築の仕方すらわからんのです
仮想マシンを2つ以上用意して試してみれば?
火葬マシン上でRAC組むのもいいけど、 手始めにOracle VM VirtualBoxでVMを2つ起動するだけでRACが体験できるイメージもあるよ。 ※SSDかRAID0で束ねた高速ストレージで動かさないと相当辛いけど。
ちょっと質問なんですが、 実行中のSELECTの読み取り一貫性のベースになってるSCNって取得できますかね? データベースのcurrent_scnじゃなくて、クエリが開始された時点のSCNってことです。 SCNでなくTimestampでもいいのかな。 SELECT FOR UPDATEとか、DMLだとトランザクションレベルの読み取り一貫性なので v$transactionを参照すればいいんですが、単なるSELECTだとステートメントレベルなので、 使えないんですよね。 v$sql_monitorとかv$active_session_historyである程度わかるけど、DATEなので 正確じゃないし、補足されないクエリも多いし、、、、
初期パラのprocessesに余裕持たせることに弊害ってありますか? セッション張らない限りリソース消費はないと思っているのですが…
たまに分からなくなる。 DBAってなんだろうって。 インストールできたらDBA? 運用できたらDBA? 障害対応できたらDBA? パフォーマンス劣化の原因究明ができたらDBA? DBAやりたくて今の会社に入った筈なのに・・・(´・ω・`) やってることは単なるプログラム作成。
>>584 意図的にプロセス数≒(専用サーバの接続数)を絞りたい理由が無い限り大きめにしとき。
専用サーバでデフォルト150(だったかな?)じゃ少なすぎて ORA-00020でハマる事が多くて
俺は構築時の決め事で10000に一律設定してる。
共有サーバはバグでハマってから絶対に使わない。。。。
Oracle Databaseの物理設計、運用設計、インストール、チューニング、障害対応 Exadata構築支援とやってきたOracle DBAです 最近は他のデータベースからOracle Databaseに移行するときの支援してます
>>586 SGAにプロセス用のエリアが予約されるので、使用されない
メモリが発生したりした気がするので、必要以上に大きすぎ
るのも、あまり良くない記憶がある。
9iとかの記憶なので、ASMM/AMM とかだと問題ないのか
もしれないけど。
>>583 audit仕掛けてDBA_AUDIT_TRAIL見るのが一番じゃねぇの?
>>588 まぁそうだけど、数十ギガ単位でSGA確保してる現状でどの程度のムダが発生するかって話だな。
どちらかと言うと、個人的には接続数のリミットを決めて予期せぬアプリの挙動からサーバやオラクルを守るのがメインのような気がする。
なので最大数の接続があったと仮定して、それをハンドルできる余裕があると思えるならそれでいいんじゃあるまいか。
運用中のDBならv$resource_limitみて決めるのがよろし。
>>585 そりゃ、プロジェクトの規模にもよるでしょ。
巨大なプロジェクトだとDBA部門の下にバックアップ専門グループやチューニング専門グループがいたりするし、
小さなところだと、開発、運用、保守まで全部ひとりでこなさないといけないこともある。
逆に個々のプロジェクトは小さくても一人で数十個のDBを担当することもある。
前者だと得意なエリアに専念できるし、後者だといろんな知識ををまんべんなく得ることができるメリットが有る。
プログラム書いてるんだったら、DBAとしてオプティマイザの挙動を探求していけばいい。高速SQLがかけるようになる。
どのエリアであろうと追求していけば、知らないことがどんどん増えていく。奥が深いよ。
>>586 プラットフォームはなに?
10000だったら、カーネルパラメータはどうしてる?
595 :
585 :2014/12/18(木) 23:08:06.80 ID:???
>>593 うむ、そうする。
来たるべきその日のために、今、爪を研いどいて、チャンスをものにするよ。。
>>594 最近は脱Windows2003Serverの流れでSPARC Solaris11 + 11gR2が多いですね。
SPARC M10-1 + Infiniband SSDストレージで2node SE RACばかり組んでます。
専門のOS職人がいるから、カーネルパラメータの設定はお任せでよく分からんです。
「OracleにメモリxxGB割り当てて セッション数 ○○以上」って頼むだけでお任せですね。
実際にノードあたり1万セッション食わせたけど、ほとんどアイドル状態だからなんとも無かった。
100G単位のジャブジャブメモリが主流になって「えいやー」設定でそれなりに動いてるだけかも知れないけどね。
EXADATA速すぎワロタwwwwwww
598 :
あ :2014/12/25(木) 19:43:43.66 ID:???
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// ヽ::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/:::「'ヽ:::::::::::// ヽ:::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ノl:::ノ l:::::::/ ヽ::::::::|
ノ:::::::::::::::::::::::::::::::::::::::::::::::::::::/ ゙゙ ノ:::/ ,,;;;;;;,, ,,,,ヽ:::::l
):::::::::::::::::::::::::::::::::::::::::::::::/ ノ/ __,'''i: ('''__):::l
)::::::::::::::::::::::::::::::::::::::::::::::::::/  ̄ ̄ン:. :「 ̄`ヾ
1:::::::::::::::::::::::「 `┤l:::::::::::::::::l  ̄ , ヽ ̄ l
`l:::::::::::::::::::::ヽ :l li:::::::::::::/ ヽ /´ `l |
ヽ::::::::::::::::::::::\_」 lヽ::::/ .l !:-●,__ ノ /
ノ:::::::::::::::::::::::::::ノ | l `゙゙ i ,,;;;;;;;;;;;;;;;;;;;;, /ヽ
,/ ヽ::::::::::::::::::::::( l l::::::::.. /.:''/´ ̄_ソ / `ヽ
ヽ:::::::::::::::ヽ | l:::::::::::... /::// ̄ ̄_ソ / \ ヴッ!!
ヽ:::::::\| l::::::::::::::::... / :::.ゝ` ̄ ̄/ / ヽ
ヽ:::l l:::::::::::::::::::..  ̄ ̄;;'' / ヽ
l l;;;;;;:::::::::::::::.....;;;;............;;;;;;''ノ l
l l '''''''''''''''''''''''''''''''''''''' ̄l | |
http://www.youtube.com/watch?v=z2qK2lhk9O0
最新バージョンってXAアプリでTAFは正常に機能する?
>>599 なんの最新バージョンの事だ?
DBか?
みんなんとこの RACでは、 管理者管理型とポリシー管理型のどっち使ってる?
RACのDBをDBUAでアップグレードしてたのだが、 DBUAが途中でこけて、中途半端な状態になってしまった。 sqlplus から起動しようとすると、ORA-39701 がでた。 CLUSTER_DATABASE を false にして辛うじて起動はできたが、 DBUAが途中でこけたため、今DBがどういう状態なのか見当もつかず、 ジ・エンド。 GUI ツールしか触ったことのない軟弱者には手に負えなかった。 手動で startup exclusive updrade(downgrade) を駆使して 色んなスクリプトを流すことができる昔ながらの猛者ならば 対処できたんだろうな・・・。 後学のために、そんな時どうすればよいか、どなたか教えをプリーズ。
・当たり前だが、作業前バックアップは採る。 ・これも当たり前だが、リハーサルを行う。 ・DBUAを使わない。-- 慣れた人ほど、ブラックボックス的な手法を嫌う。
606 :
603 :2015/01/03(土) 17:01:46.49 ID:???
>>604 うん、リハーサルだった。
>DBUAを使わない。
げぇ、それはハードル高いなぁ。。。
もしサポートに意見を求めたら、
DBUA を使うべきか、手動で行うべきか、
どっちを推奨してくるだろう?
>>605 12.1.0.1 から 12.1.0.2 でやってた。
sqlplusで startup したら
ORA-39700: database must be opened with UPGRADE option
になった。
startup exclusive upgrade したら、
ORA-39701: database must be mounted EXCLUSIVE for UPGRADE or DOWNGRADE
になり、CLUSTER_DATABASE を FALSE にしないと起動できなかった。
upgrade で open できるってことは、
まだDBは 12.1.0.1 の状態だったってことかな?
もう環境潰しちゃったから試せないけど、
そこから仕切りなおすにはどうすればよかったのだろう?
事前に rman で取得したDB全体の一貫性バックアップはあったから、
それをかまして全部元に戻せばよかったのかな?
(exclusive upgradeでopenした状態でそんなこと出来るのかな?)
DBUAに頼りっきりの軟弱者には、
そこから先に進む方法も、後に退く方法も解らなかった...orz
12.1.0.2 の RAC なんだが、 ノード追加や削除のタイミングで、 パスワードファイルやSPFILEへのaliasが消えてしまうというバグってあるか? いつの間にか消えていて焦った。 やったことは、 ・ノード追加 ・インスタンス追加 ・インスタンス削除 ・ノード削除 どのタイミングで消えたかは不明。 手動でmkaliasして事なきを得た。
あり得そうなバグだな。 SR開いてみたら?
ところで、日本語のSRってどんなもん?対応早い? 基本英語SRしか使えない環境なんだが、 ずいぶん前からサポートがオフショアからの対応で、 アサインに2日かかって、一日一レスのみとか当たり前。 放置されてたあげく勝手にクローズされたりのカオス状態なんだよな〜。
SR対応してるのって、インド人が多いって聞いたよ。 日本語変だし。
ありゃりゃ、日本語SRでもインド行きなのか。 つうことは似たような状況かね。 日本からだと時差が少ないだけマシなのか、、、
Oracle11g Red HatEnterprise Linux??6.3?? Oracleインストールして DB作成後にホスト名変更した場合 DNSサーバと/etc/hostsの設定で IPの解決さえできてれば、他の設定をしなくても問題ないでしょうか?
>>613 listener.oraやtnsnames.oraで問題なく名前解決できればいいんじゃない?
あとRACだったら色々と面倒。
>>614 あざっす!
RACではないです。
DBもOEMもListenerもエラーなく動いてますが
Google先生に聞くと
各種の設定ファイルを新しいホスト名に変更する方法しかみつけれなくて
不安になってしまったんで・・・。
10gだとEMのリポジトリ再作成とかしないといけなかったけど 改善されたのね
投票ディスクって、asmcmdから確認できないのかな? 実際にどれくらいのサイズなのか知りたいのだが。 $ crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 697ac6af9ba64f51bf15065de0d952a8 (/dev/sdb1) [CRS] 2. ONLINE 09d203f9322a4f6bbff6e0a634f9a6c4 (/dev/sdc1) [CRS] 3. ONLINE 5bec5cdf7b104fa3bff7dfc468a248af (/dev/sdd1) [CRS] 3の投票ディスクを検出しました。
>>617 ??その構成なら V$ASM_DISKGROUP で NAME='CRS' の
TOTA_MB 列あたり見ればいいんじゃないの?
>>617 確かに確認する方法が11g R2以降ではないな。
280MBというのが通説みたいだが。
>>617 さらっとマニュアル読んだら、Voting diskの格納パーティション最低必要容量が
11.1で 280MB, 11.2/12.1で 300MBだったのでその辺りでしょう。
ついでに、12.1でVoting diskからVoting fileに名前がかわってたわ。
621 :
617 :2015/01/20(火) 05:53:41.43 ID:???
>>618-620 さんくす。
12.1.0.2からGIインストール時に
ora.mgmtdb
ってのも入ってくるみたいだから、結局、ディスク容量はいくら容易すりゃええねん
って迷ってました。
余裕を持ってインストールしてみて、あとから計算するしかないのか。
10046 の level 28って何だ? level 12 が最高だと思っていたのだが。
SELECT MAX(UPDATE_DATE) FROM TABLE1 UNION ALL SELECT MAX(UPDATE_DATE) FROM TABLE2; というSQLを SELECT 'TABLE1', MAX(UPDATE_DATE) FROM TABLE1 UNION ALL SELECT 'TABLE2', MAX(UPDATE_DATE) FROM TABLE2; みたいな感じでその行がどのテーブルの結果か取得したいのですが 何かよい方法はないものでしょうか?
>>622 Doc ID 21154.1
level 16, 32, 64はExecution plan関係。
あとはレベルの組み合わせ。(level 4 + 8 + 16 = 28)
、、、だそうな。
>>621 ノード数とかモニタデータの保存期間次第?
ノード数が2なら4〜5GB推奨かな。
ま、空き容量がなくなればパージするみたいだけど。
ノード数 * 保存日数 * 750MB
>>623 SELECT MAX(UPDATE_DATE) + 100000 FROM TABLE1
UNION ALL
SELECT MAX(UPDATE_DATE) FROM TABLE2;
とかやって、絶対ありえへん日付にして
あとから引き算するってのはどお?
SELECT MAX('TABLE1'), MAX(UPDATE_DATE) FROM TABLE1 UNION ALL SELECT MAX('TABLE2'), MAX(UPDATE_DATE) FROM TABLE2; でできました。
12c Windows版 ホスト名変えたらEnterprise Managerのページに接続できなくなってしまいました 調べるととemcaコマンドを利用して修復するといろんなサイトが見つかったので 試しにemcaを実行しようとしてもコマンド自体が見つかりません。どこにあるのでしょう?
12c だったら emca はないんじゃね?
netmgr
633 :
629 :2015/01/28(水) 19:18:34.55 ID:???
12cにemcaが存在しない事は間違いないようです かわりにDBMS_XDB_CONFIGというパッケージを使って設定するようです なおNet config managerは役に立たない模様
ORACLEってキャッシュどのくらいの時間保持するの? memory_targetとmemory_max_targetしか設定してないDBサーバがある 重たい処理が終わると、10分もせずにメモリの使用量が元に戻ってた
>>634 >重たい処理が終わると、10分もせずにメモリの使用量が元に戻ってた
その「メモリの使用量」ってのは何をどうやって確認したんだ?
>>634 それ、単にPGAが開放されただけなんじゃ?
>>636 あぁーなるほど、そうかもね
windowsのタスクマネージャを見てみたらば、めっちゃメモリ使用量減ってたんだよね
thank
db 12.1.0.2 をwindows 7にインストールしようとしたらば、インストール出来なかった。 windows 7で開発は厳しい
ごめん、レジストリいじったらインストールできそうwww
ODP.NETってマルチスレッドに対応していますでしょうか? コネクションはスレッドごとに張っているのですが たまに落ちてしまいます。
>>641 ありがとうございます。
そうするとサービスなどで
複数スレッドで処理したい場合
何を使えばいいんでしょうかねぇ
JavaでJDBCとかなら対応してるのかなぁ
Oracleで、機能ごとに、Standard版で使えるのか、 Enterprise版だけなのか、オプション購入が必要かを 知るためのドキュメントはどこにあるのでしょうか?
>>645 ありがとうございます。
ですよねぇ。じゃないとTomcatとか実装できないだろうし。
まさかODP.NETにこんな罠があるとは・・・
もう皆さん12c導入しました? SEONE 11.1鯖の保守切れ時期が来たので、無難に11.2.0.4にしようか12.1にしようか迷っています。
12cにしてもいいんじゃない
>>647 この間、ExadataのGridを12.1.0.2にウプグレードした。
今のところ何の問題も無く動いている。
650 :
NAME IS NULL :2015/02/08(日) 10:33:16.22 ID:bHqu3kJv
12.1.0.2のSEはいつでるのか
>>640 11.2.0.1を買ってそれに付属してきたODP.NETを使っているんだけど、ポートを使い果たしてサーバが落ちたことがあるよ
コネクションプールをOFFにすると、close()してもポートが開放されないみたい
12cからはManaged Driverが追加されたから大丈夫だと思うけど
>>651 情報ありがとうございます。
Oracleは11gでコネクションプールはOFFにしてます。
そんな仕様だったとは・・・。
サブスレッド部分をプロセス化するしかないかなぁと
思っているところです。
今回関わる案件で8の頃に軽く触ったきりの自分が12c扱うことになった。 今はまだ計画段階だからゆっくり出来てるけど、設計構築に入るまでにバージョン間の差異を再勉強中。
>>654 オプティマイザの違い(ルール→コスト)とメモリ周りの設定の違い(職人技→ゆとり化)
を理解しておけばあんまり困ることも無いと思うけど。
開発者か管理者か知らんけど、開発者がOracleの新機能に疎かったりすることもあるからな...
設計やプログラマはRDBMSやSQLを分かってない そう考えて接するべき
コボル上がりのプログラマーが多かった頃は酷いもんだったけど、未だにそうかもね
コネクションプーリング?なにそれ? とかいう開発者はおととい来て欲しい。
>>657 仕様レビューで
SUM関数とか信用できるのか?
ループを使え!とか説教されてる若手が可哀想だった。
at RDMBMSを出荷してるH
コボラーはプログラム内でジョインしてるパターンが多かったな
RDB,SQLを理解しているSE,PGも居る
662 :
NAME IS NULL :2015/02/21(土) 05:37:15.52 ID:XsUDVy7T
select * from dual;
>>654 データ移行はどうするんだ?
IMP/EXPでデータ移行しようとするなら
新旧でNLS_LANGが一致するか確認しておいた方が良いよ
旧:NLS_LANG=Japanese_Japan.JA16SJIS
新:NLS_LANG=Japanese_Japan.JA16SJISTILDE
であることに気づかずIMPしたら
中途半端に失敗してパッケージ本体だけが消滅したり
表が中途半端に切れたりしてドツボにハマった
オラクルって昔からその辺の互換性維持には不親切だよね
×不親切 ○考えてない
互換性とかどうでもいいなら、''をNULLにしちゃうヘボ仕様を何とかしてほしいね。
>>666 Oracleから入ったものとしては他のほうが変な気がするがな
「長さゼロの文字列」ってよく考えるとそれは文字列というのか?って感じだし
未入力チェックに
WHERE ((列 IS NULL) OR (列 = ''))
とか
WHERE ISNULL(列,'') = ''
とか
WHERE COALESCE(列,'') = ''
書いてインデックが効かせられないほうが不便
いきなり空文字を認めると既存資産が打撃を受けるから
初期化パラメータで取り扱いを切り替えられるのがいいかな
昔のOracleしかしらんが varchar2とか言うわけわからん型は勝手にすれば良いんじゃね varcharは標準に合わせろよと
>「長さゼロの文字列」ってよく考えるとそれは文字列というのか?って感じだし Oracle脳だなw そんなことは、内部仕様で考えることではない。 逆に言えば、Oracleのこの制限は外部設計にまで影響を及ぼし得る糞仕様ってことだ。
Listaggってなんて読むんでしょう テーブルA X a X b X c テーブルB X 1 X 2 ってあるときに X X X X a 1 X b 2 X c
はいすいません途中でぶん投げました X a 1 X b 1 X c 1 X a 2 X b 2 X c 2 ではなくて X a 1 X b 2 X c と出す方法はないでしょうか
>>671 上から引き当てたいってこと?
DENSE_RANK使ったインラインビュー同士をJOINかな
SQL*Loaderについての質問です。 ctlに定義された要素数を越えた 可変長区切り文字txtを読み込むと、 越えた要素は切り捨てられますか? 実際に動かすと切り捨てられるので、 どちらかというと質問の意図は この仕様どこに書いてあるのかな、、 です。よろしくお願いします。 --txt-- a,b,c,d e,f,g,h --ctl-- ( column1 ,column2 ) →1行目cdと2行目ghが切り捨てられる
>>672 行数で結合すればいいのですね
ただ一列目もXだけじゃないので
1列目でグループして行数つけてから結合する・・・?
先のテーブルAに追加
Y a
Y c
先のテーブルBに追加
Y 1
Y 2
Y 3
↓
X a 1
X b 2
X c
Y a 1
Y c 2
Y .3