人に聞けない痔の悩み、これでスッキリ >>

お世話になります。
Oracle9i 以降のUNDO表領域に関してお聞きしたいのですが。
Create tablespace 文でUndo表領域を作成できますが、
複数作成するメリットなどはどのようなことが考えられるのでしょうか?
インストール時に存在する、UNDO表領域のサイズを大きくすれば
いいような気がするのですが。

以上 よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

以下の通り、複数作成しても同時使用できないので複数UNDOが存在しても意味はないです。



http://otndnld.oracle.co.jp/document/products/or …

>複数のUNDO表領域を作成できますが、UNDO表領域は1つのみアクティブにできます。

ただ、適切な設定でないUNDOを再作成する場合に、サイズの縮小やデータファイルを減らすなど、アクティブなUNDOに対して操作できない変更もあります。

事前に新しいUNDOを作成しておいて切り替えて、後で古いUNDOを消すというのはありえる作業です。
削除前ならすぐに旧UNDOに戻せますし。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうなんですね。ネットで調べていると、temp表領域は別のディスクに
表領域を作成するとディスクI/Oが減るなどと書いてあったのでUNDOも
同じことが考えられるのかと思いました。

お礼日時:2009/06/04 09:15

表領域の別ディスクへの分散はディスクI/Oが問題であれば効果があります。



UNDO表領域も別ディスクに配置した場合、ディスクI/Oが分散はされ
るでしょう。これはUNDO表領域に限らないはなしです。
※これはUNDO表領域の複数作成とは別の話。
    • good
    • 0

このQ&Aに関連する人気のQ&A

Oracle 削除」に関するQ&A: Oracleとは?

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QData Pump で大量データインポートの際のUNDO表領域、TEMP表領域不足エラー解消法のついて

いつも多くの方々にお世話になっております。
どうしても解決できなかったので、質問を書き込ませていただきました。

大量データのテーブルをDataPump の Impdp でインポートしようとした際に、
UNDO表領域やTEMP表領域不足によりインポートが中断されてしまうので、
その解消法を探しています。

単純にTEMP表領域やUNDO表領域のサイズを大きくすれば解決できるのですが、
ディスクの容量に限りがあり、TEMP表領域やUNDO表領域のサイズを700MBのまま、
大量データをImpdp でインポートできるようにしたいのですが、そうするとうまくいきません。

以前からあったImport の場合でしたら、「COMMIT=Y」としていすれば、
大量データであっても、TEMP表領域やUNDO表領域のサイズを700MBのまま、インポートできました。

しかし、Impdp には「COMMIT=Y」がサポートされなくなったとOTNのドキュメントにも書かれていました。

従来のImport を使えばインポートできるのですが、非常に時間を要するため、
TEMP表領域やUNDO表領域のサイズを気にせずとも
Data Pump のImpdp を用いてインポートできる方法を
ご存知の方がいらっしゃいましたら、ご教授願えませんでしょうか?

いつも多くの方々にお世話になっております。
どうしても解決できなかったので、質問を書き込ませていただきました。

大量データのテーブルをDataPump の Impdp でインポートしようとした際に、
UNDO表領域やTEMP表領域不足によりインポートが中断されてしまうので、
その解消法を探しています。

単純にTEMP表領域やUNDO表領域のサイズを大きくすれば解決できるのですが、
ディスクの容量に限りがあり、TEMP表領域やUNDO表領域のサイズを700MBのまま、
大量データをImpdp でインポートできるようにした...続きを読む

Aベストアンサー

テーブル単位でインポートなどでも駄目なのでしょうか?
UNDOや一時領域をなるべく生成しない方法を考えましょう。
#この事象はサポートセンター行きだと思います。

Qsqlplusで表示が変なので、出力を整形したい。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------

上記のように意味不明な形式で出てきます。

例えばこんな風に

select カラム1,カラム2,カラム3 from hoge;

カラム1 1の値
---------------------------
カラム2 2の値
---------------------------
カラム3 3の値

等のように分かりやすく表示できないでしょうか?

ちなみにOracle9iR2を使用しています。
sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。

分かりづらくですいませんが、皆さま、ご教授お願いします。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
-----------------------...続きを読む

Aベストアンサー

SQLPLUSを起動して、

SQL>set linesize 列数

でどうだ。

SQL>show linesize

で確認ができる。

Qデータを削除しても表領域の使用率が減りません

いつもお世話になっております。

今使用している表領域の使用率が高くなってきたため、
不要なテーブルやデータを削除しました。

ですが、少ししか使用率が減らず困っています。

テーブルを削除した際にはPURGE RECYCLEBINで、BIN~のテーブルも
消しています。

何か他に原因があるのでしょうか?

Aベストアンサー

前の方のおっしゃるとおり、DELETEしただけでは領域は開放されません(ハイウォーターマークが下がらない)ので、以下を試してみてください。

1.該当テーブルの全件削除で良い場合
truncate テーブル名 drop storage;
を実行する。
これで領域も開放されます。(最後のところをreuse storageとすると領域保持する意味となる)

2.部分的にdeleteして、領域を開放したい場合
alter table テーブル名 enable row movement;
alter table テーブル名 shrink space cascade;
alter table テーブル名 disable row movement;
を実行する。
1行目は領域開放の前準備、3行目は1行目の変更を元に戻す意味。
2行目でcascadeしておくと、関連インデックスの領域も一緒に縮小してくれます。

QSIDとSERVICE_NAMEの違いとは?

tnsnames.oraの中の(CONNECT_DATA=に SIDだったりSERVICE_NAMEだったりしますが、どのような違いがあるのでしょうか?
どちらでもつながるのでいいかとは思いますが、何かメリット・デメリットでもあるのでしょうか?
それとも過去の遺物が未だ共存しているだけでしょうか?
SIDはインスタンスにつけられた名前だと知っていますが、SERVICE_NAMEってなんですか?

Aベストアンサー

SIDはインスタンスの識別子、service_nameはサービス名。
インスタンスとサービスの違いはRAC を勉強されるとよくわかると思います。

サービス名は初期化パラメータのservice_namesで設定します。
設定されていない場合は先述のとおりdb_unuque_name.db_domainになります。
(これが同義と誤解されやすい原因となっているわけですが)

ところで、service_namesパラメータですが、複数形になっていることからもわかるように、複数のサービス名をコンマ区切りで指定できるようになっています。

これをこのように使います。

2ノードRAC環境で、インスタンス1(SID=hoge1)、インスタンス2(SID=hoge2)があったとします。
ノードを意識することなく接続できるようにするためにクライアント側のtnsnames.oraにはこんな設定を追加します。

HOGE.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = hoge.example.com))
)

インスタンス1とインスタンス2のservice_namesパラメータにhoge.example.comを追加します。すると、インスタンス1とインスタンス2にラウンドロビンで接続できるようになります。

ここで、もしtnsnames.oraのservice_name=...がSID=hoge1だったらどうなるでしょう?
インスタンス2のSIDはhoge2ですから一致せず、インスタンス2には接続できず、いつもインスタンス1に繋がってしまいます。

次に、一時的にメンテナンスのためにインスタンス2にアクセスしてほしくないケースを考えます。service_nameであれば、インスタンス2のservice_namesパラメータからhoge.example.comを削除することで(動的に変更できます)直ちにインスタンス1にのみ接続されるようにできます。

ここで、もしORACLE_SIDだったら・・・変更のためにインスタンスの再起動が必要になってしまいますね?

最後にservice_namesは複数登録できます。3ノードRAC環境において、オンライン処理(service_name=ONLINE)、バッチ処理(service_name=BATCH)があったとします。
バッチ処理は1つのノード(インスタンス1)でのみ処理したいとします。オンライン処理は3つのノードでしたいとします。

そんなとき、service_nameであれば、

<<サーバ側の初期化パラメータ>>
1:service_names = online, batch
2:service_names = online
3.service_names = online

<<クライアント側のtnsnames.ora>>

オンライン処理
ONLINE.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = online.example.com))
)

BATCH.EXAMPLE.COM
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
(CONNECT_DATA = (SERVER = DECIDATED)(SERVICE_NAME = batch.example.com))
)

と、クライアント側では接続先サーバを気にすることなく構成できますね?
BATCHのノードを1から2にしたい場合の変更はサーバ側のみでできますよね?
serivce_namesの"batch"設定をノード2に移すだけです。

SIDはインスタンスの識別子、service_nameはサービス名。
インスタンスとサービスの違いはRAC を勉強されるとよくわかると思います。

サービス名は初期化パラメータのservice_namesで設定します。
設定されていない場合は先述のとおりdb_unuque_name.db_domainになります。
(これが同義と誤解されやすい原因となっているわけですが)

ところで、service_namesパラメータですが、複数形になっていることからもわかるように、複数のサービス名をコンマ区切りで指定できるようになっています。

これをこのように...続きを読む

QoracleのimpdpでORA-39166

ORALCEのexpdpおよびimpdpの勉強のために自宅環境で操作していたところ、
impdpにてORA-39166(オブジェクトが見つからない)が発生してしまいした。
いろいろ調べてみたのですが、解決に至ってないためお力添えをお願いいたします。

【環境】
OS : linux ※CentOS(64bit)
ORALCE11gXE

【やりたいこと】
studyスキーマのTEST1テーブルをexpdpでエクスポート(content=data_only)し、
同じスキーマ内のTEST2テーブルにimpdpにてデータを入れる。

【発生までの操作】
1.expdp system/パスワード@XE directory=test_dir tables=study.TEST1 log=test_exp.log content=data_only

2.impdp system/パスワード@XE directory=test_dir dumpfile=expdat.dmp log=test_imp.log tables=study.TEST2 content=data_only

2の操作をしたタイミングで以下のメッセージ。

ORA-39002: invalid operation
ORA-39166: Object STUDY.TEST2 was not found.

【備考】
・TEST1およびTEST2はまったく同じテーブル構造です。studyユーザで作成してます。
・STUDY.TEST2は存在します。
(「sqlplus study/パスワード@XE」でログインしdesc TEST2で確認できるため)
・exdpは正常に終了しており、dumpファイルは「expdat.dmp」で作成されています。


以上です。
ご教授のほどよろしくお願いいたします。

ORALCEのexpdpおよびimpdpの勉強のために自宅環境で操作していたところ、
impdpにてORA-39166(オブジェクトが見つからない)が発生してしまいした。
いろいろ調べてみたのですが、解決に至ってないためお力添えをお願いいたします。

【環境】
OS : linux ※CentOS(64bit)
ORALCE11gXE

【やりたいこと】
studyスキーマのTEST1テーブルをexpdpでエクスポート(content=data_only)し、
同じスキーマ内のTEST2テーブルにimpdpにてデータを入れる。

【発生までの操作】
1.expdp system/パスワード@XE directory...続きを読む

Aベストアンサー

「expdat.dmp」の中に「STUDY.TEST2」というオブジェクトの
情報がないという意味のメッセージが出ているので
そのまんまの内容だと思うのですが。

そもそもData Pumpはバックアップや別のスキーマ・インスタンスに
移動する際に使用する機能であって、同一スキーマの別テーブルに
移動する為に使用するものではなかったと思います。たぶん。

study.TEST1のデータを削除して以下のコマンドを実行したらどうなりますか?
impdp system/パスワード@XE directory=test_dir dumpfile=expdat.dmp log=test_imp.log tables=study.TEST1 content=data_only

Qroleの権限確認方法

ユーザーの権限を確認しようと思っています。
select * from session_roles;
でユーザーが持っているロールはわかったのですが、
具体的にどんな権限(drop index,drop tableなど)
を持っているのか、それぞれのロールの権限を確認
するにはどうすればいいのでしょう?
簡単な質問で申し訳ないのですが、入門書を読んでも
見つからなかったので質問させていただきました。
もし答えるまでもない質問なら、ここを調べろとurl
を教えてくださると大変助かります。よろしくお願いします。

Aベストアンサー

以下のディクショナリで確認できると思います。
role_role_privs : ロールに付与されたロールの確認
role_sys_privs : ロールに付与されたシステム権限
role_tab_privs : ロールに付与された表権限

詳細は、リファレンスマニュアルに記載されています。
PDF 形式のマニュアルが、OTN Japan に公開されていますので、
必要であれば (無料登録が必要) OTN Japan からDownload されては
いかがでしょうか?

参考URL:http://technet.oracle.co.jp/

Qコマンドプロンプトで、ポート番号を知る方法

Oracleのポート番号を調べたいんですが,プロンプトでどう打てばよいか、解かりません。

誰かわかる人は,教えてください。よろしくお願いします。

Aベストアンサー

えっと、質問するときはせめてOS名とアプリのバージョンは書いてください。"Oracleのポート番号"という意味があいまいですが、ここではlistener=TNSのポートとして考えます。

さて、現在オープンされている(listenしている)ポートを表示させるには、"netstat -a"と入力します。UNIXでもWindowsでも同じです。
見ても良く分からない場合は、Windowsの場合は"netstat /h", UNIXの場合は"man netstat"で出てくる解説を読みましょう。

また、あるポートとそのポートを"通常"利用するアプリケーションとの対応は、UNIXの場合は/etc/servicesに、Windowsの場合はC:\WINNT\system32\drivers\etc\servicesにあります(NT/2000系の場合)

個人的には、Oracleの設定を確認したほうが早いと思います。OracleのTNSのデフォルトのポートは1521ですが、どのポートで待ち受けるかを決定するのは、UNIXでもWindowsでも$ORACLE_HOME/network/admin/listener.oraで、その中の"Port"でインスタンス毎のポートを指定することになります。

えっと、質問するときはせめてOS名とアプリのバージョンは書いてください。"Oracleのポート番号"という意味があいまいですが、ここではlistener=TNSのポートとして考えます。

さて、現在オープンされている(listenしている)ポートを表示させるには、"netstat -a"と入力します。UNIXでもWindowsでも同じです。
見ても良く分からない場合は、Windowsの場合は"netstat /h", UNIXの場合は"man netstat"で出てくる解説を読みましょう。

また、あるポートとそのポートを"通常"利用するアプリケーションとの対応は...続きを読む

QORACLEアーカイブログのサイズについて

ORACLEアーカイブログのサイズを調べたのですが、「ブロック単位」の意味がわかりません。
やりたいことは、出力した「ブロック単位のアーカイブログサイズ」を「GBで表したい」です。
ご教授願います。

私の調査結果を記載します。
以下のビューがアーカイブログ情報を保持していると判明した。
【V$ARCHIVED_LOG】

このビューが保持しているカラム「BLOCKS」が、アーカイブのログサイズを持っている。
【BLOCKS NUMBER アーカイブ・ログのサイズ(ブロック単位) 】
※ここがブロック単位であるため、○GBに変換できない・・・。

上記のカラムの情報をSELECTした結果、「ブロック単位のサイズ」が出力された。
BLOCKS = 1028995

これをGBに直したいのですが、どうしたらよいのでしょうか?

参考にしたサイト:http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19228-04/dynviews_1.htm

ORACLEアーカイブログのサイズを調べたのですが、「ブロック単位」の意味がわかりません。
やりたいことは、出力した「ブロック単位のアーカイブログサイズ」を「GBで表したい」です。
ご教授願います。

私の調査結果を記載します。
以下のビューがアーカイブログ情報を保持していると判明した。
【V$ARCHIVED_LOG】

このビューが保持しているカラム「BLOCKS」が、アーカイブのログサイズを持っている。
【BLOCKS NUMBER アーカイブ・ログのサイズ(ブロック単位) 】
※ここがブロック単位であるため、○GBに変...続きを読む

Aベストアンサー

SELECT BLOCKS * BLOCK_SIZE /1024/1024/1024 GB_SIZE FROM V$ARCHIVED_LOG;
ですかね

QLinuxサーバーが突然再起動した原因について

こんにちは。
教えてください。

自宅のLinux(Ubuntu)PCを数日間動かしていたところ、
突然再起動しました。
(勉強用にWebサーバとしているため、電源入りっぱなしです。)
考えられる原因とその確認方法を教えてください。

まずは、私が確認した内容です。
 (1)messagesファイルに異常なログはない。
   ログを見るとシャットダウンしないで、いきなり電源が落ちて、
   即座に起動しているようです。
 (2)カーネルパニックにはなっていないようです。


こんなことってあるんでしょうか・・・

Aベストアンサー

>ちなみにローダでとめておいた場合に再起動したとすると、
>OSの動作は関係ないということがわかりますよね??

はい。もちろん、その間はOSは使えませんが。

>BIOS画面で試すと何かわかりますかね??

BIOS画面で放置し、電源断→電源導通になると大抵はOSが起動しています。
ローダで止めていたのと同じように、一応の切り分けができます。
というか、これぐらいのことが想像、想定できないと切り分けはできませんよ。

>BIOS画面とローダ画面だと同じでしょうか??

今回の事象においてOSに問題があるかどうかの切り分けができるという点では同じです。
BIOSとローダが同じものかと問われているなら、回答は「違います」です。


人気Q&Aランキング