Oracle 10g Release2 for Windowsをインストール / Oracle 10gの勉強(1) / Oracleの勉強(2) / PostgreSQLとOracleの使い方比較 / ThinkPad X31のメモリを増設
投稿日: 2008年03月05日 更新日: 2017年07月22日
Oracle 10g Release2 for Windowsをインストール
Oracle 10gのバイナリはoracle.comから無料でダウンロードできるので誰でも勉強を始められる。
バイナリ的には製品版と同じだと思うが、リリース後の細かいアップデートやサポート情報はライセンスを買わないと受けることができないし、もちろん商用利用もできない。詳しくはライセンスを参照。
自分がダウンロードしたのは「10201_database_win32.zip」というファイル。
これを解凍して「setup.exe」を実行。
- 標準インストール
- 「初期データベースの作成」のチェックを外す
上記の設定でインストール。
インストールユーザに対して「バッチジョブとしてログオン」する権限を付与するため以下の設定を行う。
- [管理ツール]-[ローカルセキュリティ設定]を開く。
- [ローカルポリシー]-[ユーザー権利の割り当て]で[バッチジョブとしてログオン]を選択。
- インストールユーザを追加する。
上記セキュリティの設定をしないと、Enterprise Manager上でホストログインできない。<20080303#p04>
Oracle 10gの勉強(1)
まずは準備。
データベースの作成
スタートから「データベース・コンフィギュレーション・アシスタント」を起動してデータベースを作成。
- データベースの作成を選択。
- テンプレートは「汎用」を選択。
- グローバル・データベース名は「orcl.oracle.com」を入力。
- SIDは「orcl」
- サンプル・スキーマを選択。
- 合計物理メモリは200MBくらい割り当て。
- キャラクタセットはUnicodeを使用。
後はデフォルト。
リスナーの作成
スタートから「Net Configuration Assistant」を起動してリスナーを作成。
全部デフォルト。
サービスの確認
下記3つのサービスが登録されて起動していることを確認する。
- OracleServiceORCL
- OracleOraDb10g_home1TNSListener
- OracleDBConsoleorcl
上から、Oracle本体、リスナー、Database Console(EnterpriseManager)。
ちなみにリスナーはOracle本体に依存、DatabaseConsoleはリスナーに依存する。
そのため起動順も上から順番のほうが安全。たぶん。
EnterpriseManagerを使ってみる。
にアクセス。
まずはsysユーザ、インストール時に設定したパスワード、sysdba権限でログイン。
ここで運が良ければ「ステータス」が「稼働中」でグラフとかアラートとかが表示される画面が出るが、一発で出た試しはない。
リスナーより先にDatabase Consoleが起動していたりとか、リスナーがデータベースを自動認識(10gからの機能らしい)するまでのタイムラグだったりとかするんじゃないだろうか。
確認方法として下記のようなコマンドも有効。
emctl status dbconsole
lsnrctl status
tnsping localhost
後は下記コマンドでリスナー/エンタープライズマネージャを再起動してみるとか。(順番はリスナー→EM)
lsnrctl stop
lsnrctl start
emctl stop
emctl start
Oracleの勉強(2)
SQL*Plusを使ってみる
コマンドラインで下記コマンドを実行。
sqlplus / as sysdba
本来は下記のようにユーザ(ex.sys)とパスワード(ex.sysdba)を指定するが、上記のように省略するとOS認証になるらしい。(インストールユーザで実行すればSYSDBA権限になる)
sqlplus sys/oracle as sysdba
今後の勉強用に一般ユーザを使いたい。既に存在するhrユーザを使いたいが、セキュリティのためロックされている。下記コマンドでアンロックする。
ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;
パスワードを「hr」にしてアンロックした。
改めて別のユーザでログインするには下記コマンド。
CONNECT hr/hr
現在ログインしているユーザは下記コマンドで確認できる
SHOW USER
有名(?)なemployees表を参照する権限がある。
SELECT * FROM employees;
今後、勉強用に使うテーブルを上記表を基に作っておく。
CREATE TABLE test AS SELECT * FROM employees;
この構文ってPostgreSQLでも使えるんだっけ?((-リファレンス見たら使えた。「Oracleの機能を元に設計されました」とのこと。-))
PostgreSQLとOracleの使い方比較
パフォーマンスじゃなく使い方とか機能の違い。
psql(PostgreSQL)/sqlplus(Oracle)
今のところpsqlのほうが使いやすい。(慣れてるから当然なんだが)
- psqlはテーブル名等を入力補完してくれるけど、sqlplusはしてくれない。(面倒)
- psqlはSQL以外の文の前に\がつくけど、sqlplusではつかない。(SQLとコマンドの区別がつきづらい)
- psqlは問い合わせ結果の列幅をデータ内容に応じて自動伸縮してくれるが、sqlplusではしてくれない。(見づらい)
1.についてはpsqlだと
SELECT * FROM empl
まで入力してタブを押すとbash等みたく
SELECT * FROM employees
のように補完してくれるがsqlplusは補完してくれないということ。
2.については例えばテーブルの定義を調べるときpsqlだとこう。
\d employees
sqlplusだとこう。(DESCはDESCRIPTIONの省略形)
DESC employees
psqlを終了するとき
\q
sqlplusを終了するとき
QUIT
3.については実行結果を見れば一目瞭然。
sqlplusでも見やすいようにするためにまずは行幅を適当に増やす。(デフォルトでは80文字で折り返しが入る)
SET linesize 1000
列幅をデータに応じて設定する。(固定幅)
COLUMN first_name FORMAT A10
employeesテーブルのfirst_nameカラムの列幅を10文字に設定した。
SQL
Oracleだと下記が通らなかった。
SELECT salary, * FROM employees;
PostgreSQLだと同様の構文は通る。
Oracleの場合、下記のようにすると通る。
SELECT salary, employees.* FROM employees;
別にいいけど。
あとよく使うDML/DDLの違いは
- PostgreSQLにはMERGEがない
まだMERGEがなんなのかkwsk知らないけどINSERTとかUPDATEで代用可能なモノっぽいので困らない。
ThinkPad X31のメモリを増設
Firefoxを使い始め、さらにOracleをインストールしたことでThinkPad X31のメモリ使用量がきつくなってきた。そこでメモリを増設することにした。
768MB(512MB+256MB)だったが、512MBのメモリを購入して1024MB(512MB+512MB)に。
購入したのはBuffaroのDN333-A512MZ。本当は1GB増設して1.5GBにしたかったが、X31の上限が1024MBのため断念。
正直きびしいのはメモリ容量だけでなくCPU負荷もなんだけど、買い換える予算がないのと、X31以上に魅力のある製品が見あたらない。
名前:宮内 はじめ
Code for Nagoya名誉代表
E2D3名古屋支部長
プログラマーです。GISやデータビズが好きです。このサイトは宮内の個人的なメモです。