小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Oracle

【Oracle】はじめてのRMAN バックアップ&リストア編

はじめに OracleデータベースをバックアップするにはRecovery Manager(RMAN)という付属ツールが使えます。 RMANでバックアップとリストアを試してみました。 blogs.oracle.com リストアとリカバリ リストアとリカバリは同じ意味に聞こえますが、過去にとった…

【Oracle】SQL DevelopperでSQLチューニング・アドバイザを試してみる

はじめに SQLチューニング・アドバイザは、SQL文を分析して、どうチューニングしたら良いかアドバイスしてくれます。提示される推奨事項やアドバイスは、オブジェクトの統計情報の収集、新規索引の作成、SQL文の再構築、SQL Profileの作成などと関連していま…

Oracle 11gの監査機能で実行されたSQLを採取してみる

はじめに Oracleの監査機能を使うと、あるテーブルに対する操作をバインド変数含め、SQLレベルで記録できると聞いたので試してみました。【オラクル認定資格試験対策書】ORACLE MASTER Gold[Gold DBA11g](試験番号:1Z0-053)完全詳解+精選問題集 (オラ…

【Oracle】indexの貼られたテーブルを全件deleteしてみた

はじめに インデックスの貼られたテーブルを全件deleteしたときのインデックスツリーの変化を見ていきます。 環境 Oracle Database 12c EE 12.1.0.1.0 テスト用のテーブル CREATE TABLE T_GAKUSEI ( gakusekiNo NUMBER,--学籍番号 classNo NUMBER,--クラスid…

【Oracle】インデックスのTreeDumpを取得してみる

photo credit: Tramonto - Sunset via photopin (license) はじめに OracleのインデックスをダンプできるTreeDump機能を使ってみました。 テスト用のテーブル CREATE TABLE T_GAKUSEI ( gakusekiNo NUMBER,--学籍番号 classNo NUMBER,--クラスid name VARCHA…

【Oracle】indexをリーフ分割させながらデータを挿入する

はじめに この記事では、Oracle DBでインデックスのリーフ分割を発生させながらデータを挿入する方法について書いています。以前、テストデータを大量に作成するためのtips記事を書きました。replication.hatenablog.com このときのSQLは、以下の画像のよう…

Oracle 12cでユーザ登録からテーブル作成までをやってみた。

はじめに Oracle Database 12cをインストールして、テーブル作成、ユーザ登録、データの取得までをやってみました。機能で学ぶOracle Datebase入門 (DB Selection)posted with amazlet at 15.08.02一志 達也 翔泳社 売り上げランキング: 351,551Amazon.co.jp…

Windows8.1+Visual Studio 2015でOracle Pro*cファイルをビルドする

はじめに Windows8.1+Visual Studio 2015 CommunityでOracle Pro*cファイルをビルドする方法をまとめました。図解入門よくわかる最新Oracleデータベースの基本と仕組み[第4版] (How‐nual Visual Guide Book)posted with amazlet at 15.08.02水田 巴 秀和システム…

Windows8.1にOracle Database 12c Clientをインストールする

はじめに Windows8.1にOracle Database 12c Release 1 Client をインストールしてみました。Oracleの現場を効率化する100の技posted with amazlet at 15.08.02技術評論社 (2015-05-29)売り上げランキング: 12,298Amazon.co.jpで詳細を見る 環境 Windows8.1 3…

【INS-32025】選択したインストールは、指定したOracleホームにすでにインストールされているソフトウェアと競合します。

はじめに Oracle 12cをインストールしていたら、最後にディスクの空き容量が足りなくてエラーになりました。 空きディスクを確保してもう一度やりなおしたら、Oracleホームがすでに使用されているということで、以下のエラーになってしまいました。 [INS-320…

【Oracle】特定のテーブルが削除された日時を調べる方法

はじめに Oracleで、あるテーブルがいつ削除されたものかを調べるには、RECYCLEBINテーブルを見ると良いです。 RECYCLEBINテーブル RECYCLEBINをdescすると、以下の結果が得られます。OBJECT_NAMEはオブジェクトの名前でテーブル以外のファンクションやイン…

【Oracle】特定のテーブルの作成日時を調べる方法

はじめに Oracleで、あるテーブルがいつ作成されたものかを調べるには、USER_OBJECTSテーブルを見ると良いです。 USER_OBJECTSテーブル USER_OBJECTSをdescすると、以下の結果が得られます。OBJECT_NAMEはオブジェクトの名前でテーブル以外のファンクション…

【サンプルあり】Oracle DBMS_CRYPTOを使った暗号化・復号化

はじめに OracleのDBMS_CRYPTO.ENCRYPT/DBMS_CRYPTO.DECRYPTを使うとデータを暗号化したり、復号化することができます。 試しに使ってみました。Oracleの現場を効率化する100の技posted with amazlet at 15.06.13技術評論社 (2015-05-29)売り上げランキング…

【Oracle】データ・アクセス方式の違いによる性能差

はじめに Oracleには、6つのデータ・アクセス方式があります。 全表スキャン(TABLE ACCESS FULL) 索引一意スキャン(INDEX UNIQUE SCAN) 索引レンジスキャン(INDEX RANGE SCAN) 索引フルスキャン(INDEX FULL SCAN) 索引スキップスキャン(INDEX SIKP SCAN) 索…

【Oracle】v$sqlテーブルをクリアする

はじめに v$sqlテーブルには、SQLの実行履歴が保存されています。 このv$sqlテーブルをクリアしたい場合は、共有プールをクリアします。 conn sys/pwd as sysdba select count(*) from v$sql; >4686共有プールをクリアする。 Oracleのキャッシュをクリアする…

【Oracle】直近5分以内に実行したSQLの履歴とバインド変数を確認する

はじめに アプリケーションから発行したSQLがうまく動作しない場合、発行したSQLが分かれば調査の手がかりとなります。Oracleのv$sqlを参照すると、実行したSQLの履歴とバインド変数を確認することができます。 ざっくり言うと SQLの実行履歴はv$sqlテーブル…

オフライン環境でOracleのエラーコードからメッセージを取得する

はじめに データセンターなどオフラインの環境でOracleのエラーコードからエラーメッセージを取得したい場合、PL/SQLでエラーコードからエラーメッセージが引けます。Oracleの現場を効率化する100の技posted with amazlet at 15.05.26鈴木 健吾 玉置 雄大 塩…

【原因】ORA-01775: シノニム定義がループしています。

はじめに シノニムの参照先テーブルが存在しない場合、ORA-01775: シノニム定義がループしています。のエラーが発生することがあります。Oracleの現場を効率化する100の技posted with amazlet at 15.05.25鈴木 健吾 玉置 雄大 塩原 浩太 小林 修 大森 慎司 …

Oracleの「SQLcl」を使ってテーブルデータをCSVファイルに出力する

はじめに OracleのCommand Lineツール「SQLcl」を使ってテーブルの内容をCSVファイルに出力してみます。 環境 Windows Server 2008 R2 Oracle Database 11g 11.2.0.1.0 JRE Version8 Update 45 Oracleの現場を効率化する100の技posted with amazlet at 15.05…

【Oracle】トリガーを使ってチェックディジットを検証する

はじめに Oracleのトリガーを使って、コード値のチェックディジットを検証してNGなら例外を発生させてInsertを取り消すサンプルプログラムを作ってみました。プロとしてのOracle PL/SQL入門 【第3版】(Oracle 12c、11g、10g対応) (Oracle現場主義)posted wit…

【Oracle】トリガーによるInsert直前のデータバリデーション

はじめに Oracleデータベースを使ったアプリケーションの開発でデータベースの誤更新やデータ破壊を防ぐ方法について考えてみました。 不良データを入れさせない データベースの誤更新やデータ破壊を防ぐには、不良データを入れさせなければ良いのです。その…

select count(*)するときのrownum指定による性能差

はじめに ある条件に合致するレコードがあるかないかを調べるとき、select count(*) from table where 条件;とするのと、select count(*) from table where 条件 and rownum とするのではどれだけ性能差があるのか調べてみました。 ざっくり言うと rownumを…

【Oracle】startupでORA-03113 通信チャネルでend-of-fileが検出されました

はじめに Oracle 11gのstartupコマンドで「ORA-03113 通信チャネルでend-of-fileが検出されました」のエラーが発生しました。 以下のページの指示に従って解決することができました。Oracle の startup でORA-03113: end-of-file on communication chan - あ…

【Oracle】UNDOログとREDOログの違いが分からないのでまとめてみたよ。

はじめに OracleのUNDOログとREDOログの違いが分からないのでまとめてみました。OracleのUNDOとREDOの違いが良く分かりません。 どちらも表に対… - 人力検索はてな Oracleバックアップ・リカバリ実践テクニックposted with amazlet at 15.05.05青木 浩朗 ソ…

【Oracle】REDOログを削除して作り直す

はじめに Oracle 11gでREDOログを削除して、作り直してみました。プロとしてのOracleアーキテクチャ入門 [第2版](12c、11g、10g 対応) 図解と実例解説で学ぶ、データベースの仕組み (Oracle現場主義)posted with amazlet at 15.05.05株式会社コーソル 渡…

【Oracle】シーケンスを使って簡単に連番を採番する

はじめに アプリケーションの中で重複しない連番の採番を実装することがあるかと思います。 連番用をテーブルを作って、そこで管理することもできますが、Oracleのシーケンスを使うともっと簡単に連番の採番機構を実装することができます。 シーケンスの作成…

【Oracle】SQL DeveloperでSQLをきれいに整形する

はじめに SQL DeveloperにはSQLの整形機能があって、見にくいPL/SQLなどを見やすく整形することができます。 SQLの整形 ワークシート上で、Ctrl + Shift + F7でSQLを整形することができます。 出力先としてエディタを選択すると、ワークシート上のSQLが直接…

SQL Developerからデータポンプでdmpファイルを出力する

はじめに SQL DeveloperのData Pump機能を使って、dmpファイルにエクスポートしてみます。オラクルマスター教科書 Bronze Oracle Database DBA12cposted with amazlet at 15.03.28株式会社システム・テクノロジー・アイ 林 優子 翔泳社 売り上げランキング: …

SQL Developer 4.xでDBAビューが表示されない

はじめに SQL Developer 4.xでDBAビューが表示されないことがあります。 DBA View not start in SQL Developer 4.0.2 | Oracle Community DBAビューが表示されない場合の対処方法 DBAビューが表示されない場合は、ウインドウの設定を出荷時の設定にリセット…

ORA-08002: 順序xxx.CURRVALはこのセッションではまだ定義されていません

はじめに Oracleのシーケンスを使っていて、ORA-08002のエラーになりました。 ORA-08002: 順序xxx.CURRVALはこのセッションではまだ定義されていません ORA-08002の原因 同一のセッション内で、xxx.NEXTVALを実行していないにもかかわらず、xxx.CURRVALを呼…