初心者の忘備録

プログラミング初心者の忘備録

【windows】【データベース移行】oracleからpostgresqlへ

めちゃくちゃ大変だった。

初心者です。

間違ってたら教えて下さい。

ただ、これで一応テーブル定義はpostgreSQLに移行できました。

*忘れないように書いておく。また時間あるときに綺麗に書き換えます。

 

【やりたいこと】

WindowsOracleで管理していたデータベースをPostgreSQLに移行したい

 

【事前準備】

oracleデータベースの環境とpostgreSQLの環境を整えておきましょう。

oracle

Oracle Database Express Edition 11g Release 2のダウンロード

postgreSQL

PostgreSQL: The world's most advanced open source database

どちらも無償のものです。

 

なんか、他のサイトではclient instantツールを使うとかあったけど、

よくわからなかったので、こちらでやりました。

 

 

【流れ】

OracleのデータベースをOra2pgというソフトを使ってPostgreSQLのデータベースに移行させていく。

Ora2pgのconfファイル内に接続するデータベース、その後の変換パターンを記述して、

Ora2pgコマンドから、confファイルの指定通りに新たなファイルを作成するように

指示することによって、適切なファイルが作られる。

 

【問題】

そもそも、OraclePostgreSQLは定義が違ったり、データ型が違うからそのまま

データを抜き出して、移行はできない。

そのため、Ora2pgというソフトを利用して、Oracleのデータベースの定義を

エクスポートする際にPostgreSQL型に変更させてインポートできるようにする。

 

やってイコーーー!

【参考サイト】

ora2pg.darold.net

いろんなサイト見たけど、linuxからだったり、みなさん専門用語が多すぎたので、

今回は、この本家サイトを参考にやっていきました。

わからない単語は調べながらやったけど、まーーーーじーーーーでーー時間かかた。

 

【インストールする必要があるもの】

-Perl v5以上

(下記はPerlから使えるモジュール(部品))

 /CPAN    シェル

 /Time-HiRes   時間用

 /DBI     データベース接続用

 /DBD::Oracle oracleのデータベース接続用

-Ora2pg

 (下記はOra2pgから作成するconfファイル)

 /ora2pg.conf  設定ファイル

 

 

【その①】

perlのインストール

windows OSから行ったので、私はこちらのサイトからインストールしました。

Strawberry Perl for Windows

このパッケージの中には、あらかじめいくつかのモジュール(部品)が入って

いるので便利です。

このパッケージの中にCPANというシェルが入ってます。

シェルから、上記で記述した他に必要なモジュールをインストールするので必須。

 

$perl --version

バージョンが出てきたら、インストールできてます。

 

----現状----

-Perl v5以上

(下記はPerlから使えるモジュール(部品))

 /CPAN

 /DBI::Oracle

 /Time-HiRes

 /DBD::Oracle

-Ora2pg

 (下記はOra2pgから作成するconfファイル)

 /ora2pg.conf

 

【その②】

まずはPerl関連からどんどこインストール

コマンドラインからCPANを使ってインストール

$CPAN install Time-Hires

$CPAN install DBI

$CPAN install DBD::Oracle

 

はいおっけー!

【その③】

DBD::OracleOracleのデータベースにPerlから接続できる部品だから

予め、Oracleのデータベースの場所をWindowsOSに指示しておく必要がある。

そのための環境変数を設定する。

 

本当はコマンドから何度も挑戦したんだけど、全然うまく起動しなかったので

こちらを参考に。

新規パスとして2つ登録する。

パス名:ORACLE_HOME 

パス:Oracleデータベースが設定されているパス 

   Oracleのファイルがたくさん入っているディレクト

  例)C:¥oraclexe¥app¥oracle¥product¥11.2.0

       ←このパスの後ろにもう一つディレクトリがあるかも

パス名:LD_LIBRARY_PATH

パス:上記のパスの一つ下の層にあるlib

   例)C:¥oraclexe¥app¥oracle¥product¥11.2.0¥lib

 

----現状----

 

-Perl v5以上

(下記はPerlから使えるモジュール(部品))

 /CPAN

 /DBI

 /Time-HiRes

 /DBD::Oracle

-Ora2pg

 (下記はOra2pgから作成するconfファイル)

 /ora2pg.conf

 

【その④】

Ora2pgをダウンロードして、インストールする

まずはこちらからダウンロード

 

そんで、インストール

まずはzipファイルを適当な場所(これいっつも困る。Cの中にぶっこんだ)

に展開します。

 

コマンドから上記の展開したディレクトリまで移動して、perlを使ってインストール

$cd C:¥ora2pg-19.0

$perl Makefile.PL

$perl gmake && gmake install

 

確認コマンド

$ ora2pg --version

バージョンが表示されたらOK

 

----現状----

-Perl v5以上

(下記はPerlから使えるモジュール(部品))

 /CPAN

 /DBI

 /Time-HiRes

 /DBD::Oracle

-Ora2pg

 (下記はOra2pgから作成するconfファイル)

 /ora2pg.conf

 

【その⑤】

ora2pg.confファイルを作成

C:¥ora2pg-19.0 ディレクトリ下にora2pg_dist.confファイルがある。

これをコピーして、まずはファイルを作成する。もしかしたらora2pg_dist.confを

書き換えて、ora2pg_dist.confファイルを設定ファイルとして指定したら

よかったのかも。。。

ちょっとわかんなかったので、私はコピーして作った。

 

コマンドから(ora2pg-19.0のディレクトリで)

$copy ora2pg_dist.conf ora2pg.conf

 

これでファイルは作成できた

 

----現状----

-Perl v5以上

(下記はPerlから使えるモジュール(部品))

 /CPAN

 /DBI

 /Time-HiRes

 /DBD::Oracle

-Ora2pg

 (下記はOra2pgから作成するconfファイル)

 /ora2pg.conf

 

やったーーー!!これで全部インストール系は完了!うっし。

【流れを再度確認】

ora2pgコマンドより、ora2pg.confファイルに設定してある内容で

データをpostgreSQL用にエクスポートさせたい。

ということは、ora2pg.confにはどのoracleに接続するのか指定する

必要がある。

 

【その⑥】

ora2pg.confにデータベースの設定を指示していく

ファイルを開いて、編集箇所を書いて上書き保存

 

⦅編集箇所⦆

ORACLE_HOME [windowsOSに通したパス]

ORACLE_DSN dbi:Oracle:host=[ホスト名] localhost:sid=[sid名(XE等)]

ORACLE_USER [ユーザー名]

ORACLE_PWD [パスワード]

SHEMA [スキーマ名(通常はユーザー名と同じ)]

 

【その⑦】

Oracleへの接続確認

ora2pg-19.0ディレクトリまで移動して

$ora2pg -c ora2pg.conf -t SHOW_VERSION

と打ったら

Oracle database 11g Release 11.2.0.1.0

こんなんでて、バージョン確認できたら、ora2pgコマンドから

使用したいOracle databaseに接続できる!

 

ちなみに

-c:conf file

-t:type export

-n:user name

なので、

$ora2pg -c ora2pg.conf -n [confファイルに設定したユーザー名] -t SHOW_TABLE

と打つと、

ユーザー名が作ったテーブルがズラーーーーっとコマンド上に出てくる

このテーブルはora2pgさんがpostgreSQL用に変換してくれたもの。

これをファイルとしてエクスポートする必要がある

 

【その⑧】

postgreSQLでインポートできるファイルを作成する

上記のデータをファイルにする

$ora2pg -c ora2pg.conf -n [ユーザー名]

 

ora2pg-19.0ディレクトリ下にoutput.sqlとして出力されている

 

【その⑨】

postgreSQLに先程作成したoutput.sqlをインポートする

一応postgreSQLの入ってるディレクトリまで行って。

(ただ、これあんま関係ない気がする)

$psql -f[実行したいSQLが書かれているファイル] -U [postgreSQL ユーザー名]

   ([DB名])(-h[ホスト名])

password:[postgreSQLのパスワード]

 

できたーーーーーーーーーーーーーーーー😭😭😭

めちゃくちゃ嬉しい。

色々細かいところも、わかってないですが、これでできます。

流れが自分で説明できるだけ、だいぶ成長!

おっし!

 

 

 

 

 

 

 

 

 

【初心者】【mac PSequel】 導入方法から設定

以前の記事でpostgreSQLをインストールしたので、

今回はmacで使えるPSequelをインストールしていきましょう!

【やりたいこと】

macにPSequelを導入したい

 

【PC環境】

mac Hig Sierra 10.13.6

 

【事前準備】

homebrew インストール済み

【流れ】

homebrewを使ってインストール

環境構築

参考ブログ インストール

参考ブログ 設定

 

そもそも論として、postgreSQLはターミナルからしか利用できません。

とのこと。こないだ会社で知りました。

そこで、私みたいな初心者には、GUIツールが必要!

以前e-learningにてJavaを勉強してた時は、下記の状況でした。

【OS】Windows 10

【実行環境】Eclipse

【DB】Oracle 11g

【環境ツール(GUIツール)】SQLdeveloper

 

今回のPSequelはここでいうSQLdeveloperですね。

 

じゃあ行ってみよー!

 

ターミナルで下記をうつ

$ brew cask install psequel

最後にパスワードを求められるので、PCのパスワードをうつ。

 

f:id:gogoinaka:20180826193607p:plain

はい!できました。

続いて、設定行きましょう!

アプリケーション内に入っているので、クリックして実行!

f:id:gogoinaka:20180826194836p:plain

ちょっと待って、なに接続するんだっけ??

ということで見直します。

postgreSQLをインストールした際に、初期設定で作ったユーザを確認。

コマンドで

$psql -l

で作成したデータベースが確認できますね。

 

全て入力して、connectを押すとーーー。

はい!できました。

 

f:id:gogoinaka:20180826195256p:plain

 

 

やったー!めっちゃ嬉しい。

初心者には何事もできたら嬉しいのだ!

 

次は、何かしらのデータ資料を取ってきて、インポートしてみたいと思います。

ただ、MySQLも使いたいので、そっちもインストールしようかな。

 

 

 

 

【mac データベース導入】postgreSQLのインストール

【やりたいこと】

postgreSQLの環境構築

 

【PC環境】

mac OS High Sierra 10.13.6

 

【事前準備】

homebrewの環境あり

 

【流れ】

-インストール

-データベースの初期化

 

 

【参考】

vdeep.net

 

やってみよー!

 

まずはターミナルから

$ brew install postgresql

しっかりインストールできたか確認して

$ psql --version

psql (PostgreSQL) 10.5

 

はい、導入完了!

 

続いて初期化

$ initdb /usr/local/var/postgres -E utf8はいできました。
導入まで完了だ!
でもなんでデータベースの初期化っているんだろう???
疑問だわー。と思って検索してたら、こんな記事発見

thinkit.co.jp

ここでは、初期化することによって、設定ファイルが作成され、
テンプレートデータベース、初期データベースが作成されるとのこと。
ふーん、つまり初期化しないとダメって覚えておけばいいのかな。
今の所。



 

 

 

 

macにhomebrewをインストールする

【やりたいこと】

mac OS High Sierra 10.13.6にhomebrewを導入する

homebrewとは、mac自身の環境をなるべく使って、いろんなパッケージを管理する

 ツール(という認識)*間違ってたら、正してください。

 

 

【事前準備】

xCodeをインストールしておく。

なにやら、homebrewのインストールにはxcodeという開発ツールが必要のようだ。

これは、わかんないから、またまとめよう。

 

【やってみよー!】

homebrewの本サイトから下記のコードを取ってくる

f:id:gogoinaka:20180826103607p:plain

これをターミナルに貼り付けて、Enter!!!

途中止まった所の指示は、続けるならenterキーをとのこと。

その次にパスワードを入力するところで止まった。

パソコンの設定時のパスワードを入力。

 

するとーーー!

無事できました。

 

インストールできているか確認したい時: brew -v

インストール内容の確認:brew doctor

 

以上!