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 で開発作業
接続を登録
- 表示(V) メニュー
- 接続(C)
- 接続の作成
- 作成/選択ウィザード
- 接続名(任意)
- 登録済みの ユーザ名/パスワード 入力
- ホスト名、ポート名、SID を指定
別 DB からインポート
Oracle SQL Developer の複製機能を使う。
Oracle データベースのバージョンが異なっても大丈夫!?
- ツール(T) メニュー
- データベース・コピー(C)
- ウィザード
4. ソース/宛先
1. ソース、宛先を選択 (接続は登録済みとする)
1. オプションのコピー:オブジェクトのコピー
(デフォルト)
2. DDL のコピー:既存の宛先オブジェクトを置換しない
(デフォルト)
3. データのコピー:コピー前に宛先データを切り捨て
(宛先にデータがあるなら、チェックオン)
4. オブジェクト型
1. 全選択(デフォルト)
5. 表領域の選択
6. 参照(K) 押下
7.>>
で全てを対象にいれる
8. 一覧から、BIN$xxxxxx...
を選択し、<
で対象から外す (2項目)
9. データの指定
10. 全選択 (デフォルト)
11. コピーのサマリー
12. 問題なければ、終了(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