豚吐露@wiki

Oracle

最終更新:

ohden

- view
管理者のみ編集可

Oracle

環境
Ubuntu10.04LTS server
OracleXE 10.2




■ SQL Developer
Oracle謹製のGUI tool。これが無いと見えないカラムもあったりするので、対Oracleでは必須です。
SQL Developer
Javaで書かれてるので、起動にはJavaが必要になるんだけど...なぜかJREではなくJDKが必須になってます。
何使ってるんでしょうね?
で、64bit環境のOracle Database突っ込むと、SQL DeveloperとJDKも一緒に付いてくるんだけど...SQL Developerって32bit環境のJDKでないと動かないらしい。別途32bit環境用のJDKのinstallが必要になるとかどーとか...ちゃんと試してません。(´・ω・`)


■参考サイト
オラクルちょこっとリファレンス
http://luna.gonna.jp/oracle/






  • ORA-01033
> sqlplus /nolog
SQL> conn sys/manager as sysdba
SQL> shutdown normal
SQL> startup mount
SQL> recover database
SQL> alter database open
で、recover時にエラーが出る。








  • Oracle Install時に異常終了する
『設定: 構成データのリポジトリへのアップロード中にエラーが発生しました』とか出てinstallが正常終了しない...
原因判明。ローカルな環境でinstall作業してたから。
どうも、コレinternet回線を利用して何かをuploadしてるらしい...(-ω-;)
何をuploadしとるんだ...何を...
internet回線含まれてるnetworkに繋いで作業したらあっさり入った。ヽ(=´▽`=)ノ

  • 日付関係でおかしい言われたら
ORA-01861が発生して日付のフォーマットがおかしいといちゃもんつけられたら、そのSQL実行前に以下のSQLを実行。
ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
あと、暗黙変換に使われるフォーマットは以下で取得可能。
select * from v$nls_parameters where parameter='NLS_DATE_FORMAT';

  • REDO Logの使い方
-- 現在使用されているREDO Logのgroup番号を調べる
-- CURRENT	:使用中
-- INACTIVE	:待機中
select group#, status from v$log;

-- REDO Logの各groupの実ファイルpath
select group#, member from v$logfile;

-- アーカイブLogのモード確認
-- ARCHIVELOG	:アーカイブログを残す
-- NOARCHIVELOG	:アーカイブログを残さない
select log_mode from v$database;

  1. -- システムのテーブル一覧
  2. SELECT * FROM DICT ORDER BY TABLE_NAME;
  3.  
  4. -- ユーザのテーブル一覧
  5. SELECT * FROM TAB;
  6. SELECT * FROM USER_TABLES;
  7. -- テーブルのカラム一覧
  8. SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME='TABLE';
  9. -- PK,FK,制約一覧
  10. SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME='TABLE';
  11.  
  12. -- 実行SQL一覧(DBA)
  13. -- ※ただし、SQLはparse(解析処理)済みの状態でキャッシュされており、要求SQLと一致するparse済みキャッシュがあると記録されない。
  14. SELECT * FROM V$SQL WHERE PARSING_SCHEMA_NAME='USER';
  15. SELECT SQL_FULLTEXT, FIRST_LOAD_TIME, LAST_LOAD_TIME, LAST_ACTIVE_TIME FROM V$SQL WHERE PARSING_SCHEMA_NAME='USER';
  16.  
  17. -- parse cache削除 ※共有プール内のライブラリ・キャッシュ(sqlのparse結果、PL/SQL、Javaコードなど)、ディクショナリ・キャッシュ(ユーザ名、プロファイル、セグメント、テーブルスペース情報、順序番号、スキーマオブジェクトのメタデータなど)が削除される。
  18. ALTER SYSTEM FLUSH SHARED_POOL;
  19.  
  20.  
  21. -- セッション一覧
  22. SELECT * FROM V$SESSION WHERE SCHEMANAME='USER';
  23. SELECT USERNAME, OSUSER, TERMINAL, PROGRAM, LOGON_TIME, SERVICE_NAME
  24. FROM V$SESSION WHERE USERNAME='USER';



更新日: 2020年05月25日 (月) 11時19分21秒

  • DBの総データ量を調べる方法: http://imfaq.intra-mart.jp/imfaq/index.php?action=artikel&cat=32&id=449&artlang=ja -- (s1n) 2012-10-03 16:23:55
  • sqlplusでSIDを省略するとどうなるか?通常『sqlplus user/passwd@sid』のようにして接続を行う。接続時、SIDを省略『sqlplus user/passwd』しても接続できる環境とできない環境がある。接続できるのは、接続先のOracleDBが接続元PCのローカル環境に存在し、環境変数『ORACLE_SID』が設定されている場合。この時sqlplusはLISTENERを用いずBEQ接続を用いてDBへの接続を行う。 -- (s1n) 2012-10-10 10:11:10
  • Bequeath Net8 IPC接続 -- (s1n) 2012-10-10 10:23:26
  • 行ロック: 行ロックをしたい場合は『select文』を使う。『select文』末に『for update』と記載するとhitしたレコードがロックされる。ただし、表を結合していた場合は『of句』を使わないとロックされないらしい。 また、『wait句』を使うことで既にロックがかかっていた場合に、ロックが解除されるまでの時間を秒で指定する。『nowait句』を指定すると既にロックがかかっていた場合、エラーとなる。どちらも設定しない場合はロックが解除されるまで延々待ち続ける。 -- (s1n) 2012-10-15 18:19:06
  • マルチテーブル・インサート。『insert all』これを使うと、1回のSQLで複数データをinsertしたり、複数のtableに一度にい -- (s1n) 2012-11-19 09:15:07
  • Oracle10gまではlistener.logが4GByteに達するとTNSListenerが強制終了してたらしい。しかもサービス起動中はlistener.logが動かせないっておまけ付き。w 11gからはADR(Automatic Diagnostic Repository)って仕組みが導入されたおかげでサービス起動中でもlistener.logの移動はできるようになったらしい。 -- (s1n) 2012-12-10 20:58:41
  • OracleDatabase11gにおいてObject名は30Byte内に収めんといけんらしい。Table名やPKEY名、TableSpace名とか色々全部っぽい。 -- (s1n) 2015-09-18 17:03:06
  • DBA_TABLESPACE_USAGE_METRICS テーブルスペースの使用量を調べる -- (s1n) 2016-03-13 10:30:02
  • https://mydbhost.example.com:5500/em/ -- (s1n) 2018-07-18 16:25:46
  • Oracleでlimitを使いたい場合、ROWNUM+サブクエリを使う。12c以降であれば、OFFSET&FETCHを使う。 -- (s1n) 2020-05-25 11:20:34
名前:
コメント:

すべてのコメントを見る
記事メニュー
目安箱バナー