Oracle
パッケージの情報を確認するにはrpmコマンドを使用しますが、 rpm -q xscreensaverというように一回一回やっていくのは非常に手間です。下記のコマンドを使用すれば一発で情報を取得することが可能です。 rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARC…
sqlplusで目的のデータベースにsystemユーザーでログイン後、 下記のSQLを実行すると文字コードの確認ができます SELECT value FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';
DatabaseLinkというリモートDBをローカルDBと透過的に使用できる機能があることを先日初めて知りました。設定方法および使用方法について簡単にまとめたので紹介したいと思います。ローカルDBがあるOracleのtnsnames.oraにリモートDBへの接続情報を記述しま…
現在接続しているユーザー名を確認するには以下のコマンドを実行します。 SHOW USER
ORA-04031 共有メモリーのstringバイトを割り当てできません上記のエラーの対処方法としては初期化パラメータSHARED_POOL_SIZEの値を増やすことが必要となります。またデータベースを長期間(数ヶ月)稼動させた状態の場合にはSHARED_POOLが徐々に断片化するた…
SELECT * FROM all_objects WHERE object_type='SEQUENCE'
Oracleのアラートログ(alert_{ORACLE_SID}.log)に下記のようなエラーが大量にはきだされるときがあります。 Memory Notification: Library Cache Object loaded into SGA Heap size 7798K exceeds notification threshold (2048K)これはデフォルトの状態でSG…
CREATE SPFILE='C:\oracle\product\10.2.0\db_1\database\spfileORCL.ora' FROM PFILE='C:\oracle\product\10.2.0\oradata\orcl\pfile\initORCL.ora';
OracleDBConsoleはOracleEnterpriseManagerに関するサービスです。 マシンのIPアドレスを振りなおした場合、IPアドレスで設定していたところで不整合が起こるので再構築する必要があります。再構築の方法としては以下の3つ。(1)でだめな場合は(2)を、(2)がだ…
Oracle9iにおいてANALYZEが実行されているDBではSQLの実行がルールベースではなくコストベースになります。昨日まで問題なく動いていたSQLが急に遅くなったりした場合はANALYZEが実行されてオプティマイザがコストベースで判断している可能性を疑ってみてく…
昨日のエントリの続きです。 STATSPACKを削除する場合もSYSDBA権限を持ったユーザーで特定のスクリプトを実行すればOKです。 CONN SYS/CHANGE_ON_INSTALL AS SYSDBA @%ORACLE_HOME%\RDBMS\ADMIN\spdrop.sql 実行後、%ORACLE_HOME%\BIN以下に spdtab.lis spdu…
STATSPACKはOracle8iから追加されたパフォーマンス収集ツールです。 Oracle10gからはパフォーマンスを測定するツールとしてOracleEnterpriseManagerなどありますが、実際の現場ではまだまだSTATSPACKが使用されているようです。インストールするにはSYSDBA権…
SYSTEM表領域はオフラインにできないので、データファイルを移動させる場合、他のテーブルスペースとは違う手順を踏む必要があります。1.データベースを停止する SHUTDOWN IMMEDIATE; 2.OSコマンド等でデータファイルを移動 COPY C:\oradata\system.dbf D:\o…
ORA-01555やORA-30036のエラーが出たときはUNDO表領域のサイズが足りないので、そのような場合のOracle側の対策としてサイズを拡張する必要があります。 (アプリ側の対策としてはこまめにcommitをかけるようにする必要があります) CONN system/[パスワード]@…
下記のようなエラーが出た場合、テーブルスペースのサイズが足りないことが原因の大半です。 ORA-01658: 表領域USERSにセグメント用のINITIALエクステントを作成できませんそのようなときはSYSTEMユーザーでテーブルスペースのサイズを拡張してあげる必要が…
REDO ログを取得していない場合やREDOログファイルが壊れていた場合の復旧方法の手順は以下のようになります1.データファイルと制御ファイルをリストアします2.SQL*PLUSにSYSDBA権限を持つユーザーでログインし、下記のSQLを実行します。 STARTUP MOUNT; A…
SQL文中で「\」,「*」,「_」,「%」などの特殊文字をWHERE句の条件に指定したい場合、 「ESCAPE」使用します。“HOGE_”が含まれているレコードを抽出したいときは以下のように記述することになります。 SELECT empno, ename FROM emp WHERE job LIKE '%HOGE\_%' ESCAPE…
Windowsだとサービスの画面からでインスタンス単位で起動や停止を行ってしまうので、 UnixやLinuxでいざインスタンスの起動や停止を行うときにどうやればよいのかとまどってしまうことが多いです。肝心の手順ですが、以下のような流れでやればOKです。Oracle…
Oracleのエラーコード(ORA-?????のような形で出力されるエラーコード)を監視してアラートを出すようなシステムがあります。 とはいえ、Oracleのエラーコードの中には単なるメッセージつまり特にアラートを出す必要のないメッセージもあります。下記の表は9i…
ロックの情報を取得するにはsystemユーザーで次のSQLを実行します。 結果が返ってこなければ正常です。ロックの基本情報を取得するSQL文 SELECT SID,TYPE,LMODE,REQUEST,CTIME FROM V$LOCK WHERE TYPE IN ('TX','TM'); ロックをかけているユーザーとプログラ…
OS認証ユーザについてのメモです。 OracleのOS認証とはOracleで作成されるユーザ(スキーマ)を、OSのアカウントと同名のユーザを作成し、外部認証ユーザとする事により、パスワードの管理とユーザ認証をOSによって行う仕組みです。 つまり、OSアカウントで…
Oracleの初期化パラメータには、次の2つの種類があります。 静的パラメータファイル(PFILE) 永続パラメータファイル(SPFILE) --> Oracle9i以降で使用可能 以下に、2つのファイルの主な特徴を記述してみます。 PFILE SPFILE ファイル種別 テキストファイ…
Oracle10gで、プライマリキーの削除をした際にINDEXが残ってしまい、再作成できない問題があったので対処方法をメモしておきます。 ------------------- ダメな例: ALTER TABLE [テーブル名] DROP CONSTRAINT [プライマリキー名] ALTER TABLE [テーブル名] …
OracleRACを利用する場合のJDBCドライバの設定は通常の記述の仕方と若干異なってきます。以下の構成を例に説明していきます。 Server_Name ORACLE_SID ORACLE_Service_Name ----------- ---------- ------------------- Server_A db_name_A db_name Server_B…
1. sqlplusからデータベースにでsysdba権限で接続します sqlplus /nolog CONN / AS sysdba 2. 一時的に使用するREDOロググループを作成します(下記例は従来のREDOロググループが3つの場合)。 %REDO_DIR%はREDOログファイルの作成されるディレクトリとなりま…
Oracleのユーザー(スキーマ)のパスワードを変更するにはsqlplusから sysもしくはsystemユーザーで下記のコマンドを実行する必要があります。 ALTER USER (変更ユーザ) IDENTIFIED BY (変更パスワード); (例)SCOTTユーザーのパスワードを「LION」に変更する A…
Oracleのバージョンを確認する方法はいろいろあります。次の二つはsqlplusから確認する方法です。 sysもしくはsystemユーザーでsqlを実行します。 SELECT version FROM v$instance; SELECT * FROM v$version; OPatchを適用するときなどモジュールごとの詳細…
違うバージョンのOracleを用意したいが予算がないため、専用のマシンを用意できないような場合、今回紹介する方法は有効です。今回はOracle10.1とOracle10.2での動作を確認していますが、9iと10gといったメジャーバージョンが違う組み合わせでも可能な方法と…
パフォーマンスを測定するときにキャッシュの影響を排除したいときがあります。 (キャッシュによってどれくらい速度が上がっているのかを調査したいときなど)Oracleの場合簡単なのはインスタンスを再起動することですが、やはり時間がかかります。 そのよう…
http://laurentschneider.com/wordpress/2007/04/how-do-i-store-the-counts-of-all-tables.html の記事によると 全テーブルのレコード数を出力するには以下のSQLで可能らしいです。 SELECT table_name, TO_NUMBER( extractvalue( xmltype( dbms_xmlgen.getx…