ラベル Oracle の投稿を表示しています。 すべての投稿を表示
ラベル Oracle の投稿を表示しています。 すべての投稿を表示

2014年5月10日土曜日

OracleのUNDO表領域が肥大化した時の対処方法

ディスクフルになったシステムの復旧をするのに、まず現在のデータのバックアップを取得したいところだが、ディスクフルの状態では、エクスポートができないので空き容量を増やさなければならないという鶏が先か卵が先か状態に陥るってこと、よくありますよね?(よくはない

そんな時、もし、UNDO表領域が肥大している状態であれば、UNDO表領域を縮小し、Exportできるだけの領域を確保することができるかもしれないということを、Oracleの有識者から聞きかじり、調べた結果、以下を参考にしてなんとか切り抜けることができたので備忘録として残す。(環境はWindows7 pro 64bit)

参考:UNDO表領域の縮小


1.UNDO表領域の縮小を試みる。
(1)UNDO表領域の確認
command prompt> sqlplus /nolog
SQL> conn sys/pasword as sysdba;
SQL> show parameter undo_tablespace
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
undo_tablespace                      string
UNDOTBS1

(2)一時的なUNDO表領域を作成する。
SQL> create undo tablespace UNDOTMP datafile '【表領域のpath】\UNDOTMP1.DBF' size 1G AUTOEXTEND ON;
表領域が作成されました。

(3)一時的なUNDO表領域に切り替える。
SQL> alter system set undo_tablespace='UNDOTMP' sid='orcl';
システムが変更されました。

(4)切り替わったことの確認
SQL> show parameter undo_tablespace
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
undo_tablespace                      string
UNDOTMP

(5)切り替える前のUNDO表領域のサイズを縮小するために、表領域を削除後、再作成する。
SQL> drop tablespace UNDOTBS1 including contents and datafiles;
表領域が削除されました。
SQL> create undo tablespace UNDOTBS1 datafile '【表領域のpath】\UNDOTBS1.DBF' size 4G AUTOEXTEND ON;
表領域が作成されました。

(6)最後に再作成したUNDO表領域に切り戻す。
SQL> alter system set undo_tablespace='UNDOTBS1' sid='orcl';
システムが変更されました。

(7)切り替わったことの確認
SQL> show parameter undo_tablespace
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
undo_tablespace                      string
UNDOTBS1

(8)一時的なUNDO表領域の削除
SQL> drop tablespace UNDOTMP including contents and datafiles;
表領域が削除されました。



2013年5月25日土曜日

Oracle11g for windowsインストール前の準備(ネットワーク関連)

最近のネットワーク事情からすると、固定IPアドレス1個で運用しているPCは少ないのではないだろうか?
DHCPを使用していたり、仮想環境を使用していれば、ネットワークアダプタも複数個作成される。
また、ネットワークカードを複数運用していることもある。

ORACLEはネットワークに関するトラブル(?)が多く、整理する必要があるなと思っていたら、ちゃんとOTNからDLできるドキュメントに書いてありましたよ、その辺のことが。

というわけで、以下の通りまとめてみた。



1.要件
 (1)DHCP環境で使用する。
 (2)外ではWiFiを使用し、社内では有線LANを使用している。
 (3)会社内外で使用するノートPCへORACLEをインストールする。
 (4)対象となるOSはWindows7 pro 64bit


2.ループバックアダプタのインストール
 まずDHCP環境を使用している場合は、ネットワークに接続するたびに動的アドレッシングによって、異なるIPアドレスが割り当てられることから、DHCP環境の場合には、ORACLEインストール前にループバック・アダプタをインストールして静的なIPアドレスを割り当てよとの記載がドキュメントにある。
 (1)「スタート」をクリックして、検索ボックスにhdwwizを入力。
 (2)hdwwizをクリックして、ハードウェアの追加ウィザードを開始。
 (3)ハードウェアの追加ウィザードの開始というウィンドウで「次へ」をクリック。
 (4)「ウィザードで、ほかのハードウェアをインストールできます。」ウィンドウで、「一覧から選択したハードウェアをインストールする」を選択し、「次へ」をクリック。
 (5)「共通ハードウェアの種類」リストから、「ネットワーク アダプター」を選択し、「次へ」をクリック。
 (6)「ネットワーク アダプターの選択」ウィンドウで、製造元:「Microsoft」を選択。
 (7)ネットワーク アダプター: 「Microsoft Loopback Adapter」を選択し、「次へ」をクリック。
 (8)「ハードウェアをインストールする準備ができました。」ウィンドウで「Microsoft Loopback Adapter」が選択されていることを確認して「次へ」をクリック。
 (9)「ハードウェアの追加ウィザードの完了」ウィンドウで、「完了」をクリック。
 (10)「ネットワークと共有センター」の「アダプターの設定の変更」から作成された接続(Microsoft Loopback Adapter)の「プロパティ」を選択。
 (11)「ネットワーク」タブで、「インターネット プロトコル バージョン4 (TCP/IPv4)」を選択し、「プロパティ」をクリック。
 (12)「全般」タブを選択し、「次のIPアドレスを使う」をクリック。
 (13)「IPアドレス」にループバック・アダプタのルーティング不能IPを入力。ORACLEのドキュメントで推奨されている「10.10.10.10」を入力。
 (14)「サブネット マスク」に255.255.255.0を入力。
 (15)その他すべてのフィールドは空白のまま「OK」をクリック。
 (16)「閉じる」をクリック。
 (17)コンピュータを再起動。


3.ホスト名の指定
 複数IPアドレスを持つコンピュータの場合、各IPアドレスにホスト名が関連付けられることからホスト名に別名を持たせることができる。
 デフォルトではOUIがORACLE_HOSTNAME環境変数の設定を使用してホスト名を検索することから以下の様にして環境変数を設定する。

 (1)「コントロールパネル」で「システム」を表示。
 (2)「システムのプロパティ」ダイアログ・ボックスで「詳細設定」をクリック。
 (3)「詳細設定」タブで、「環境変数」をクリック。
 (4)「環境変数」ダイアログ・ボックスで「システム環境変数」の下の「新規」をクリック。
 (5)「新しいシステム変数」ダイアログ・ボックスで、次の情報を入力。
  ・変数名: ORACLE_HOSTNAME
  ・変数値: 使用するコンピュータのホスト名(例:ORAX230)
 (6)「OK」をクリックし、「環境変数」ダイアログ・ボックスで「OK」をクリック。


4.ホスト名とループバックアダプタのひも付け
(1)「DRIVE_LETTER:\ WINDOWS\system32\drivers\etc\hostsファイルで、localhostの行の直後に次の形式の行を追加します」と、ドキュメントには記載がありますが、そのままだとセキュリティの関係で、変更することができないので、etcフォルダのプロパティ->セキュリティタブ->詳細設定->監査にてAdministratorsを追加。フォルダの所有権をAdministratorsとし、セキュリティタブに戻り、アクセス許可をフルコントロールに設定。
(2)エディタを管理者権限で実行し、hostsファイルを開く。

(3)最終行に以下を追加。
IP_address   hostname.domainname   hostname
例:10.10.10.10 orax230.x230 orax230
(4)確認の為、pingを実施。
ping -4 x230
  実行した結果、10.10.10.10からの応答があればOK。


以上の準備をしてからOracleをインストールすればネットワークに関するトラブルが軽減するはず…。

2013年5月4日土曜日

Oracle11gアンインストール手順

1.DBCAにてデータベースを削除


2.OUIにて11gを削除
  この時、

  コマンド'C:\app\Akihiro\product\11.2.0\dbhome_1\deinstall\deinstall'を実行して、このOracleホームを案インストールしてください。

  とダイアログが表示される。


3.コマンドプロンプトにて、以下を実施。
    > C:\app\Akihiro\product\11.2.0\dbhome_1\deinstall
    > deinstall

  構成解除するすべての単一インスタンス・リスナーを指定してください[LISTENER]:

と聞いてくるので、Enter。

  このOracleホームで構成されているデータベース名のリストを指定してください []:

これはさっき、データベース消したはずなので、Enter。


  CCR check is finished
  続行しますか (y - はい、n - いいえ)[n]:

yと入力しEnter。

ぶわーっといっぱいログが表示される。

なにやら削除できないものがいっぱい残ってる様子。


4.スタートメニューとサービスを確認
  とりあえずOracle関連のメニューは消えているがおそらく色々残っているはず。
  サービスも消えていることを確認。
  しかし、この後を実施しとかないと、インストール時に厄介なことになる。(たぶん


5.残ったフォルダの削除
  C:\app\ユーザフォルダ<-ログインする際のユーザ名
  これを削除しようとすると別のプログラムがうんたらとでてきて削除できない。
  よって、まず、再起動を実施してから削除するとさくっと消える。


6.regeditで以下のレジストリを削除
  \HKEY_LOCALMACHINE\SOFTWARE\ORACLE


7.再起動を実施。


参考:Oracle11g for Windows アンインストール手順


  


2013年1月18日金曜日

sqlplusでORA-28056が発生

sqlplus sys/password as sysdbaを実行したところ、ORA-28056 writing audit records Windows Event Log failed というメッセージが表示され、sqlplusにsysでログインできない。
この場合、Windowsのイベントログのうち、アプリケーションログをクリアするか、サイズを拡大するか上書きを許可するかで対処しろとググると書いてある。
イベントログのアプリケーションを選んでプロパティを開くと以下の設定がある。
1.最大ログサイズを増やす
2.ログサイズが最大値に達したときの動作
(1)必要に応じてイベントを上書きする。
(2)イベントを上書きする。○日経過後
(3)イベントを上書きしない
3.ログを消去

最終的に2.(2)を選んだ。
 

2013年1月15日火曜日

ORA-12154に悩まされる

ORA-12154といえば、割と一般的なOracleのエラーで、ググれば大体、解決方法が見つかる。

ところが、NetManagerや、tnsname.oraを確認しても解決できず。
sqlplusにローカルではアクセスできるがサービス名を使ってログインできず。

ODBCを使用していたので、ODBCデータソースアドミニストレータで確認したところ、 ユーザデータソースがアンインストールしたOracelXEにひも付けされていた。

削除しようとしても削除できずなかったが、追加でorclを上書きしたところ、解決。