2009年11月21日土曜日

Oracle10g で発生する製品バグについて

[起こりうる現象]
OS 起動後 に一定時間経過するとOCI クライアントがハングします。具体
的には現象発生時、ハング中はスピン状態(一種の無限ループの実行状態)
となり、CPU 使用率が高騰している状況が継続します。
弊社で確認している"一定時間の経過"は、Linux環境でカーネルのバージョ
ンによって 198 日、または 248 日経過後にハングするという事例です。


[対象リリース]
問題が発生するリリース :Oracle Database 10g Release 2 (10.2.0.1)
Oracle Database 10g Release 1 (10.1.0)
問題を修正したリリース :11.1.0
問題を修正したPSR :10.2.0.2

[対象プラットフォーム]
すべてのプラットフォーム
(※内部ロジックの検証により Linux全般、及び AIX のみで発生する現象である
ことが確認されております。詳細は[FAQ]をご参照ください)


[起こりうる条件]
次の条件を満たしている状態で、OS times() システムコールが負の値を戻した場
合に現象が発生する場合があります。

- OCI および OCI を使用するミドルウェアすべて(JDBC Thin Driver 以外)を
使用している
※ データベース・リンクや、インスタントクライアントでもこの問題は発生し
ます。

なお Linux x86 プラットフォームでは、カーネルバージョンの違いにより OS
起動後198 日 以上経過している場合と、248 日以上経過している場合に OS
times()
システムコールが負の値を戻す場合があることを確認しています。OS 起動からの
経過時間は、以下のようにして確認できます。

$ uptime
20:56:42 up 22 days, 9:51, 5 users, load average: 0.00, 0.00, 0.00


[原因]
製品の不具合です。OS times() システムコールを使用した部分に問題があり、
times() 関数が負数を戻す場合について考慮が不足していました。


[回避策]
問題を修正したPSRを適用していただくか、または、198 日経過前に OS の再起動
を 実施していただくことで回避可能です。


[障害発生時の対処]
OS の再起動を行ってください。


[BUG番号]
BUG:4612267
* My Oracle Supportで内容を公開していない場合があります


[FAQ]
Q1. 全てのプラットホームで発生しうるとありますが、詳細を教えてください。
A1. BUG:4612267ではGeneric BUG(全てのプラットフォームで発生しうるBUG)とし
て 扱われており、それに準じて記載しております。
しかしながら、その後の調査により、OSがtypedefで提供している型の違いに
よって、弊社製のソースコードが同一であるためGeneric BUGとして扱ってお
りますが、問題が発生するプラットホームとそうでないプラットフォームが
確認されています。
また、#ifdef等を用いてOS別の実装がなされている部分もあり、その実装によ
り発生しえないプラットフォームも存在します。
Q2. 本問題が発生しうるプラットフォーム(OS)を教えてください。
A2. Linux全般、及び AIX にて発生し、その他のプラットフォームでは発生いたし
ません。また、AIXでの事例は報告されておりません。
Q3. Oracle 10.1を使用していますが、条件を満たしても発生していません。
A3. バージョン毎に、問題を含む該当モジュールの実装が異なっているため、発生
しやすさが異なります。Oracle 10.2.0.1は非常に発生しやすいロジックとな って

おり、Oracle 10.1.0では発生しにくいロジックとなっております(10.1.0でも
発 生する可能性はあります)。


[補足事項]
Oracle Server へ接続し、SQL の実行や、データの参照、編集などを行うことが可
能 な製品は、内部的に OCI ライブラリを使用しています(ただし、Oracle JDBC Thin
 Driver を除きます)。これらの製品は、本文書の対象である OCI クライアントに
該 当します。以下の文書についても併せて参照してください。
KROWN:124406 OCI を使用するプログラミング インターフェース製品について

また Fusion Middleware 製品において本現象に該当する製品の情報につきまして
は、
 KROWN:127093 Fusion Middleware 製品における Krown:111215 の影響について
を参照してください。



OTN
http://otn.oracle.co.jp/forum/thread.jspa?messageID=35015309

2009年4月1日水曜日

Sysなどのパスワードを再設定する場合

<方法>
%ORACLE_HOME%\network\admin\sqlnet.oraに
SQLNET.AUTHENTICATION_SERVICES= (NTS)
が書かれていることを確認の上で
C:\>set oracle_sid=SID名
C:\>sqlplus
ユーザID、パスワードを求めてきたら / as sysdba

その後、
ALTER USER SYS IDENTIFIED BY 新パスワード;
 or
ALTER USER SYSTEM IDENTIFIED BY 新パスワード;
で管理者のパスワードを変更してください。

別ユーザのテーブルを複数ユーザで共有する方法

シノニムを使用して、あたかも、別ユーザのテーブルが自分所有のテーブルとして
使用させる方法を以下にしめす。

 SQL>conn admin/admin_passwd;
SQL>Create Table aaa
(
test_column varchar2(10);
);
SQL>grant select,update on admin.aaa to staff;
SQL>create synonym staff.aaa for admin.aaa;
↑ 通常は同じ名前にする

2009年3月23日月曜日

ユーザにテーブルごとに権限を付与する方法

【要求】
別ユーザ(caomu)にあるユーザ(shunzhi)の所有するテーブルにselect,update,deleteのみを許したい

【操作方法】
1.ロールの作成
SQL>create role roleA;

2.別ユーザにロールを付与
SQL> grant roleA to caomu;

3.別ユーザに個別のテーブルへ、権限を付与
SQL>grant select,update,delete on shunzhi.t_imp_koza to caomu;

4.接続権限を付与
SQL>grant create session to caomu;

2009年3月17日火曜日

Client VPN にて、Windowsのリモートデスクトップで接続できない

【事象】
 1.VPN Clientで、接続したあと、RemoteDeskTopで、接続しにいっているが、
   接続できない

【対応】
 RemoteDeskTopのポート:3389番をVPN Client用に、設定した

2009年3月13日金曜日

exportしたらEXP-00056+ORA00932 のエラーが発生

【事象】
 Oracle10g にて、exportユーティリティにて、expを実行したら、
 EXP-00056 と ORA-00932のエラーが出て、exportできない


EXP-00056: ORACLE error 932 encountered

ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR


【対応】
以下のSQLを実行

SQL> connect / as sysdba

SQL> @?/rdbms/admin/catmetx.sql

SQL> @?/rdbms/admin/utlrp.sql

VMWare WorkStationでホストOSとゲストOSのファイル共有

【前提】
 ・ホストOS:Windows XP
 ・ゲストOS:Red Hat Linux

1.VMWareの[VM] --> [Settings] を開き
表示されたサブウィンドウのOptionタブを選択。

2.SharedFoldersをクリックし、
  右画面の[Add]ボタンをクリック。

3.Nameに共有フォルダ名を入力

4.Host Folderに、ホストOSの該当フォルダを選択

5.VMWareで、ゲストOSを起動し、共有フォルダにアクセス
 共有フォルダは、/mnt/hgfs/共有フォルダ名にマウントされる。
 ここでいっている共有フォルダは、3で入力した共有フォルダ名

2009年3月9日月曜日

表領域の空きとサイズ確認

Oracle 表領域の空きとサイズ確認をするSQL

SELECT tablespace_name "TableName", SUM(bytes)/1024/1024 --"空き領域(MB)"
FROM dba_free_space GROUP BY tablespace_name;

SELECT tablespace_name "TableName", SUM(bytes)/1024/1024 --"サイズ(MB)"
FROM dba_data_files GROUP BY tablespace_name;

手動にてDB作成時に ORA-01991 

【事象】
 dbca など、GUIではなく、CREATE DATABASE 文を自分で
 記述してのDBを作成時に、ORA-01991のエラーが発生し、
 DBの作成が失敗する

【対応】
 orapwd コマンドにて、パスワードファイルを作成

2009年2月27日金曜日

VMWare WorkStationで、ゲストOSのRed Hat Linux がインストールできない

【事象】
 VMWare Workstation を使って、ゲストOSに、Red Hat Linuxをインストール
 しようとしているが、ハードウェアのドライブがみつからないというエラーになる。

【対応】
 今回は、USB HD上に、Linuxをインスールするので、
 USB の部分のディスクインターフェースを SCSIではなく、IDEに変更すると
 うまく、インストールができた。

2009年2月23日月曜日

Windowsの管理者のパスワードを忘れたとき

【事象】
Windowsの管理者のパスワードを忘れてしまい、ログインができない。

【対応方法】
① 管理者権限のあるほかのユーザにて、管理者のパスワードを再設定。
② Safeモードにて起動後、"Administrator" のユーザIDで、ノーパスワードにて
   ログインし、管理者用のパスワードを再設定。
 ※ ただし、Administratorのパスワードも変更されている場合は、無理である。

③オープンソースソフト「Ophcrack」を使って、パスワードを解析する
詳細は以下のURL
Ophcrack
http://ophcrack.sourceforge.net/

http://gigazine.net/index.php?/news/comments/20070816_ophcrack/


2009年2月21日土曜日

データベースのキャラクタセットの確認方法

SQL/PLUSなどにて、以下のSQLを実行。

SELECT PARAMETER, VALUE
FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

NLS_CHARACTERSET: データベース・キャラクタセット

NLS_NCHAR_CHARACTERSET: 各国語キャラクタセット

※show parameters で出力されるキャラクタセットは、使用されている
キャラクタセットではない。

NetScreenのLAN側IPにpingが通らない

【事象】
複数台のPCをNS(SSG5)に接続し、LAN側(trust)のIPにpingが通らない

【原因】
trust interfaceの定義で、HostIpAdrress になっておらず、
別拠点へのVPN 接続する際の Ip Address と重複していた。


【対応】
trust interfaceのip address のサブネットマスクを32にして、
host ip address にして、LAN側のIPを1つにして再定義

ファイルの分割と結合方法

Linux にて、ファイルの分割と結合方法

以下のコマンドで可能。

%)split -b 分割対象ファイル 分割後ファイル名

ex)split -b 100k aaa.png aaa.
※:aaa. とすると、分割順番によって、自動で拡張子が振られる

%)cat 分割されたファイル > 結合後のファイル名
ex)cat aaa.* > aaa.png

2009年2月12日木曜日

NetScreen でのVPN構築

NetScreen SSGでVPN構築する場合、以下の手順にて行なう必要がある。

1.untrust / trust Interface の定義
 ※trust InterfaceのbgroupXをどのポートに設置するか、適正に設定する。

2.Routingに、対抗のtunnelを定義する

3.Policyを作成する。(不要なケースあり)
  Policyで使用するDestinationをあらかじめ、作成しておくと便利

4.VPNのAutoKeyIKE, Gatewayをそれぞれ作成する。
  PresharedKey,Phase I Proposal, Phase2 Proposalを対抗のVPNの
  ルータと合致させる。