このドキュメントでは,MacOS X 10.11.5 El Capitanにて,Oracle 11.2 Clientを使ってOracle 11g Express Editionへ接続する手順を説明する.「ORA-12170: TNS: 接続タイムアウトが発生しました。」というエラーが出た場合の確認内容についても説明する.
このORA-01438というキーワードで検索してくる人も多いのですが,基本は設計不足が原因です.
これも良くあるOracleのエラーです.
古いOracleで良くあるエラーです.
このドキュメントでは,ORA-01658エラーの対処手順を説明する. 利用してるOracleは,RedHat 6.2で稼働しているOracle8i 8.1.5.0.1である. OSもハードも古いものなのでサーバ移転を行い,撤去を依頼されたんでexpコマンドでフルバックアップをとろうとしたら,このエラーが発生した. なんでもこのOracleは,稼働中にも関わらずファイルコピーでバックアップを取得ていたので,これまでオンラインバックアップ,RMANはおろかexportさえも行っていなかったとの事. ORA-1658エラーはテーブルスペースの容量不足が問題なので,それを確認して増やす手順となっている.
このドキュメントでは,MacOS X 10.10.4 Yosemite上に,Oracle 11g Clientを入手し,インストール,そしてSQL*PlusにてWindows上で動作するOracle Database 11g Express Editionに接続するまでの手順を実行する. なお,Oracleのクライアントを入手するためには,あらかじめOTN(Oracle Technology Network)の会員になっておく必要がある.OTN会員登録は無料.
VirtualBox6.0上にインストールした,Red Hat 7.6に,Oracle 11g Express Editionを入れてみる.
OTNのサイトからダウンロードしたファイルを確認するところから.
インストールしたOracle XEは起動している状態なので,停止して,起動してみる.
Oracleといえばこのscott/tigerユーザとempテーブルなのだけれど,多分セキュリティ上の理由からデフォルトで作られなくなった.scottユーザのパスワードはtigerであるというのはこの業界では当然すぎるから.それでもscottユーザがいないと落ち着かないので,作ってみた.単純に最初から用意されているutlsampl.sqlを実行するだけです.
このドキュメントでは,VirtualBox上で稼働しているWindows 8.1 Enterprise Edition 32bit版に,Oracle 11g Express Editionを入手してインストールする手順を説明する.難しいことは一つも無い.
Windows 8上でOracle 11g Express Editionに外部から接続できるようにFirewallを設定する. まずは,そもそも接続ができる状態なのか確認するために,Windowsファイアウォールをオフにしたのちに接続を確認する. その後,受信の規則を追加する.「ORA-12170: TNS: 接続タイムアウトが発生しました。」エラーが出る場合は,このWindowsファイアウォール設定で通信許可が行われていない事が原因かもしれない.
このドキュメントでは,Oracle 11g R2を64bit版Windows 2008 Web Editionにインストールする手順を説明する. なお,使用するOracle 11g R2は,OTN(Oracle Technology Network)で入手できる試用版である為,最新版は製品版と異なる可能性がある. 試用版でインストールを続ける場合に WFMLRSVCApp.earが無いエラーが出る場合は,その対処方法も記してある.
事前準備が完了したら,インストール作業を行う.今回のインストールでは,Enterprise Editionを用いて,サーバ版としてデータ ベースはデフォルトの構成として作成する.
0.改訂履歴 1.はじめに 2.セットアップを実行する 3.セキュリティ・アップデートの構成とインストール・オプションの選択 4.システム・クラスとGridインストール・オプションの選択 5.インストール・タイプの選択 6.標準構成の入力と管理パスワードの設定 7.サマリーにてインストール条件を確認する 8.インストールの開始 9.Oracle Configuration Manager Configuration 10.インストールの終了
Oracle 12cのcはCloudの事らしいけれど,それよりは足もとのセキュリティ関連が強化された事のようです.強化と言う程でもなくてデフォルト値をちゃんとした!というのが正しいのかな.
Oracle XE(Express Edition)をインストールした後,SQLコマンドライン(SQL*Plus)を使ってデータベースに接続してみる.SQL*Plusは,コマンドプロンプトを利用しているので,設定を変更することでコピペなどがしやすくなるので,設定変更方法についても説明する.
Oracle 11g Express Edition for Windowsを(Oracle XEと略)をインストールすると,デスクトップに「Oracle Database 11g Express Editionのスタート・ガイド 」というアイコンが設置される.これを使って,インストールされたデータベースについて,構成内容を確認することができる.
Oracle Linux 7.1をVirtualBoxにインストールしてみる.Oracle Linux 7.1は,無料で登録できるOTN(Oracle Technology Network)から入手できる.
WindowsにOracle XEをインストールする際に文字コードなどを指定する部分がないので,Unicode(UTF-8)でインストールされてしまう.これをSJISに変更したい場合,データベースの作り直しが必要となる. このドキュメントでは,現在の文字コードを調べたあと,文字コードをSJISに変更する手順を説明する.
なお,SJISのデータベースを作成する手順となっているが,UTF8のデータベースを作成する時も手順としては同じである.
Oracle 11g Express Editionを使っていて,テーブルにのカラム名を変更しようとしたら,ORA-14155という謎のエラーがでたので,その対処方法.
例えば,PGAの物理メモリ内でソートができなかったりしたら,TEMP表領域を使ってソートをおこなう.この時に自動的に拡張される. 「自動的に拡張する」というのは拡張された時に少し処理が(何もしないよりは)重たくなるので,オンライン処理中に「自動的に増える」というイベントが発生しないようにしたい.
自動的に増えないようにするということは,十分なサイズのTEMP表領域を準備しておくということになるので,今回,それを増やしてみる.
Oracleでインデックス作成時間とかデータバックアップ時間とかを計測するときに,ダミーデータが必要なときがある.それも大量に.ここでは,scott/tigerのempテーブルをサンプルテーブルとして,シンプルなやり方でデータを大量に作成してみる. また,シーケンスのリセットも行っている.
なお,empテーブルはutlsampl.sqlを実行してscottユーザと共に作成されている事を前提とする.
シリアル番号を生成するためにOracle特有のシーケンスを使っている. 今回は,Oracle 11g Express Edition(XE)を使っている.
辞書でPCTFREEと調べてもでていない.造語.
「パーセントフリー」という意味で,OracleでVARCHAR2等の可変データ型を使う時に,余分に空白取っておく割合の事.
多すぎると無駄になるし,少ないと行移行が発生してとても効率が悪い...
このドキュメントでは,PCTFREEを理解する為に行移行のロジックを図解で説明する.
PL/SQLを実行したときに時間を表示したいときがある. DBMS_OUTPUTを使うと時刻を表示できるのだけれど,SERVEROUTPUT ON西ておかないと標準出力に出てこないので,その使い方を示す簡単なサンプルを記載する.
Oracle 9i以降では,トランザクションログがUNDO表領域という所に保存されるのだけれど,Oracle 11g XEだとUNDO領域は自動拡張autoextentするので,ほっといたら容量が大変大きくなっていたりした. 今回は,それを小さくする手順を確認する.
Windowsのコマンドプロンプトやbashを使っていて上下矢印キーを押すとコマンド履歴がでる.
LinuxやMacOS XのSQL*Plusだとコマンド履歴がでないので不便.そういう場合に,rlwrapをインストールして使う.