LoginSignup
31
41

More than 5 years have passed since last update.

超初心者の Oracle データベース開発環境導入

Posted at

Oracle 使ってるプロジェクトで、試行錯誤のためにローカルにデータベース用意たいよー
という時の作業メモ。

※トライアンドエラーしまくったメモなので、このとおりの順序で作業できない可能性高いです。

環境

  • Windows 7 SP1 32bit

インストールしたもの

  • Oracle 11g Express Edition
    • 11.2.0
  • Oracle SQL Developer

固有環境

  • Oracle 11g Express Edition
    • インストールディレクトリ: C:\oraclexe\
    • データ用ディレクトリ: c:\oraclexe\data\

固有パスをあわせる必要はないですが、必要であれば以下読み替えてくださ
い。

インストール

  • Oracle 公式にユーザ登録し、必要なファイルをDL
  • 手順は省略
  • システムのパスワードは覚えておく

初期作業

接続設定(サービス名およびSID)確認

C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora を確認
(一般的には XE らしい)

接続確認

powershell などから

> sqlplus system/システムのパスワード
SQL>

表領域作成

※ユーザ名などは適当です。

SQL> CREATE TABLESPACE MY_DATA
  2> DATAFILE `c:\oraclexe\data\MY_DATA.dbf` SIZE 200M
  3> SEGMENT SPACE MANAGEMENT AUTO;
     表領域が作成されました。

ユーザ作成、権限付与

SQL> CREATE USER orauser
   2 IDENTIFIED BY orapass
   3 DEFAULT TABLESPACE MY_DATA;
     ユーザーが作成されました。
SQL> GRANT connect,dba TO orauser;
     権限付与が成功しました

実は権限付与作業は不要かも!?

Oracle SQL Developer で開発作業

接続を登録

  1. 表示(V) メニュー
  2. 接続(C)
  3. 接続の作成
  4. 作成/選択ウィザード
    • 接続名(任意)
    • 登録済みの ユーザ名/パスワード 入力
    • ホスト名、ポート名、SID を指定

別 DB からインポート

Oracle SQL Developer の複製機能を使う。
Oracle データベースのバージョンが異なっても大丈夫!?

  1. ツール(T) メニュー
  2. データベース・コピー(C)
  3. ウィザード
    1. ソース/宛先
      1. ソース、宛先を選択 (接続は登録済みとする)
      2. オプションのコピー: オブジェクトのコピー (デフォルト)
      3. DDL のコピー: 既存の宛先オブジェクトを置換しない (デフォルト)
      4. データのコピー: コピー前に宛先データを切り捨て (宛先にデータがあるなら、チェックオン)
    2. オブジェクト型
      1. 全選択(デフォルト)
    3. 表領域の選択
      1. 参照(K) 押下
      2. >> で全てを対象にいれる
      3. 一覧から、BIN$xxxxxx... を選択し、< で対象から外す (2項目)
    4. データの指定
      1. 全選択 (デフォルト)
    5. コピーのサマリー
      1. 問題なければ、終了(F) でコピー開始。

同DBからインポート/エクスポート

とりあえず古いツール (exp/imp コマンド) を用いる。
powershell から操作

exp

> cd 作業ディレクトリ
> $now = (Get-Date).ToString('yyyyMMdd-HHmmss'); exp orauser/orapass@XE  FILE=mydb.$now.sql  LOG=exp.$now.log

imp

表領域を削除して作りなおす方針

dropTablespace.sql
drop tablespace MY_DATA including contents and datafiles;
create tablespace MY_DATA datafile 'C:\oraclexe\data\MY_DATA.dbf' size 200M segment space management auto;
quit;
imp.ps1
sqlplus system/システムのパスワード @dropTablespace.sql

$now = (Get-Date).ToString('yyyyMMdd-HHmmss');  imp orauser/orapass@XE FROMUSER=orauser TOUSER=orauser  FILE=$args[0]  LOG=imp.$now.log
31
41
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
41