- 締切済み
Oracle への移行
社内基幹システムのDBをOracleへ移行するように言われました。 僕自身、DB経験が約2年、SQL文、C、VBなど 実際の運用については、まぁいいとして Oracleの知識がゼロです。 (基幹システム管理部 全員ゼロです。) 気長にやろうと思っているのですが まず何をするべきだと思いますか? 今は、関連サイトめぐり。本などを読んでます。 こういうことは直接メーカに聞くべきですか? その他、補足はどんどんしますので温かい(?)コメントよろしくおねがします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- Binder
- ベストアンサー率33% (5/15)
> 2.は、e 以外は、わかります。tablespaceって?? ORACLE独自の表現かもしれませんので、忘れていただいて 結構です(^^)v このレベルまで御存じなのであれば、ORACLEの命令関係は問題なさそうですね。 あとは、SQL*PlusやSQL*Loaderなどの使い勝手に慣れるのに最初はとまどうと思いますが、これも経験で解消できます。 > 現在ほぼ、8ユーザ、2開発ユーザのライセンスで > Workgroup・UNIX版にしよう!というところまで決まりました。 Workgroup版でUNIX機ですか・・・。 御予算多いんですね(^o^) 羨ましい。。。 > (開発者、実は2人なんです ^^;) す・・・すごく大変ですね。ご苦労様です。 > 次なる疑問なんですが。。。 > ●Net8、SQL*Plus、SQL*Loader は最初から付いてるんですか? > (この3つは絶対必要だと感じています) ごめんなさい、Workgroup版のライセンス関係はちょっと 存じません。他の方のコメントをお待ち下さい。 Net8、SQL*Plus、SQL*Loaderは、サーバー側のことを 言われているのか、パソコン側のことを言われているのか どちらでしょうか? Enterprize版の場合は・・・ サーバー側であれば、同時利用者最大数のライセンスを必要とし、パソコン側はインストールする台数分だけのライセンスが必要な筈です。 > ●他にもツール等いっぱいあるのですが、どういう基準で選べばいいのでしょう?? これは今まで使用された経験のある言語を基準に考えるとよいと思います。 C言語が書けるということですので PRO*C は必須ですね。 しかし、pro*C は小回りが利く代わりにやたらと宣言をしなければならなく鬱陶しいので、入力・表示が含まれない部分の処理に関しては PL/SQL という別の言語で開発すると結果的には早く完成します。 PL/SQLは基本的に戻り値を返すか[C言語のreturn( ... ); に相当]、もしくは、結果をテーブルに書き出す方法でしか出力を行うことが出来ませんので。 あと、言語を使用しない対話的なツールもいくつか存在しますが、ホビーで使うのならまだしも基幹系システムで使用するには、かえって使い方が限定されてしまい、苛々するかもしれません。 結局、PRO*Cで地道に...。 ところで、現在のシステム使用しているテーブル数は合計何個ぐらいでしょうか? それでだいたい規模が皆さんに伝わると思いますので。 それと、ORACLE製品はパソコンショップなどで購入されるのでしょうか? それともORACLEサポートの能力があるメーカーさんから買われるのでしょうか? ORACLEを利用していると(Infomixも同じでしょうが)、やたらと質問したいことが多いです。 そのときに、さくさくと気軽に質問できる窓口がないと、とってもツライですよ。 ちなみに、メーカー系のサポートでもベテランの方がいらっしゃる会社なら良いですが(="ORACLE Master Silver"・"ORACLE Master Platium(プラチナ)"の資格を所有している担当者が対応してくれるのなら良いですが)、単なるソフトウェア会社が「サポートもやっていますよ」程度だと、そこと契約するのは勿体ないです。 ちゃんとした回答を即座に欲しいのであれば、アシスト社(←日本で最初にORACLEを販売し、今でも実質的なORACLE主導権を握っている企業です)と契約することをお薦めします。 日本オラクル社は、アシスト社よりも後に誕生した会社ですが、日本オラクル社のサポートセンターも良質です。 アシスト社→ http://www.ashisuto.co.jp/
- 参考URL:
- http://www.ashisuto.co.jp/
- Binder
- ベストアンサー率33% (5/15)
再び Binderです。 Informixは残念ながら存じ上げません(^_^;) InformixもSQL文で利用できるリレーショナルデータベースですよね? リレーショナルDB同志なら、MS-ACCESSを介して、データを渡す豪快な作戦もありますが、基幹システムのデータ量では、とてもまかないきれないでしょうね。 本格的に、2つのデータベースのデータを渡すとなると、その為だけに何百万円のソフトを購入する必要があります。 地道な作業ですが、INFOMIX側でCSV形式か固定フォーマット形式で吐き出し、次にftpでORACLEが載っているサーバーへ転送し、最後にORACLEのユーティリティーの1つである『SQL*Loader』で読み込む、といった方法があります。 どんな方法を採っても次のような問題があります。 ドロドロの世界です。 1) 文字コードの違い Informixが搭載されているサーバーの文字コードは何でしょうか? それと、今度ORACLEが載るサーバーの文字コードは? Shift-JIS・EUC・EBCDICなどなど... 文字コードの種類の違いによって、Informixで読めていた文字がORACLE側では読めなかったり文字化けしたりします。 特に、Shift-JISのShift-in制御コード・Shift-out制御コードによる文字列長の伸縮や、半角カナ文字の内部コードの桁数の違い(EUCコードで半角カナ1文字を表現するためには2bytesです。)に気を付けて移行しないと大変なことです。 2) 外字・機種依存文字の取り扱い Informix側で独自に登録してある外字はORACLE側でどのコードに割り当てられるか事前調査が必要です。場合によっては文字化けしたりします。 Informix側の機種依存文字は、その名の通りその機種でしか使えないわけですから、別の機種へはもちろん伝達できません。 ORACLE側で代わりとなる文字コードに置き換えたり、外字を新たに割り当てる必要があります。 しかし、最近では、機種依存文字や外字をデータベース内に絶対に持たせないようにするルールを敷いている企業もでてきています。 つまりどのサーバーやどのパソコンでも必ず読める文字だけを採用しようという考えです。 一番問題なのは、社員や会社名の特殊な漢字です。 社内印刷物なら、社員や社内の理解が得られれば問題ありませんが、官庁などに提出する書類はそのようにはいきませんし。 3) 制約について ORACLEでは、テーブルとテーブル間で強い関係を持たせて、2テーブル間のデータ整合性が崩れないような仕組みを利用することもありますが、データをSQL*Loaderで読み込むときに、この仕組みがとっても邪魔なのです。 4) Workgroup と Enterprize Workgroupはたしか10ライセンス限定だったような記憶が... (はっきり覚えていません。他のコメントを待ってください。) 少なくとも数十人以上で利用するシステムの場合は、間違いなくEnterprizeの筈です。 とりあえず、一旦このあたりで・・・(;_;)
- Binder
- ベストアンサー率33% (5/15)
補足していただけると言う有り難いお言葉に甘えて、質問も混ぜ混ぜ、以下にコメントをさせていただきます(笑) 【質問】 1. 社内基幹システムのDBの種類は何でしょうか? コンピューターメーカー名とDB名を。 例えば「IBM社のDB2」「富士通社のNatural」のように具体的にお願いします。運良く私が知っている基幹DBであれば、必ず良いコメントをお伝えできるとか思います。 2. SQL文の経験が2年ほどあるということですが、次のどのレベルまで御存じでしょうか? a. select * from mytab; b. select * from mytab where id=7; c. update mytab set syainname = "itou"; commit; d. create table mytab ...; e. create tablespace ...; f. create database ...; susumuさんの会社の初期投資の入れ具合にも依りますが、資金投入可能なら皆さんの言われるように、8ユーザーライセンスを購入&導入してしまうのが手っ取り早いです。 とっても高価なお買い物ですから、その購入先メーカーさんに「ORACLE入門セミナーに無料で行かせて~」とか「個人的にある程度まで(上の例で言うならe.まで)教えてよ、一杯奢るから」で良いでしょう(笑) 小資金で済ませるならば(最近の製品体系はあまり知らないのですが)、個人向けORACLEがあり安価です。 多分「Oracle8i Personal Edition」(定価 \69,000、URL = http://www.oracle.co.jp/o8i/pe/index.html)を購入されてはいかがでしょうか? 実際に、何十~何百ユーザーの利用に耐えられるORACLE Databaseを構築・データ移行・運用を行うには、とてつもなく膨大な知識量を必要とします。 (ORACLE技術の資格制度である)"ORACLE Master"の"GOLD"以上を取得している派遣社員を一時的に雇って、(正式にor個人的に)みっちり教えて貰うのも手です。 "ORACLE Master"は、Silver→Gold→Platinumの順で、右に行くほど"凄い人"です!(※ちなみにPlatinum所有者はORACLE Databaseの神様扱いです!) 解説URLはここ▼ http://www.oracle.co.jp/seminar/master/master01.html では、色んな面から補足をお願いいたします(^^)v
補足
1.は、いいですね。「InformixのInformix」です。 2.は、e 以外は、わかります。tablespaceって?? 現在ほぼ、8ユーザ、2開発ユーザのライセンスで Workgroup・UNIX版にしよう!というところまで決まりました。 (開発者、実は2人なんです ^^;) 次なる疑問なんですが。。。 ●Net8、SQL*Plus、SQL*Loader は最初から付いてるんですか? (この3つは絶対必要だと感じています) ●pro*CとPro*C++は別ものですか? ●他にもツール等いっぱいあるのですが、どういう基準で選べばいいのでしょう??
- takakohno
- ベストアンサー率30% (12/40)
Oracle本体を買うのはもちろんとして、概要と使い方を一通りマスターするなら、セミナーを受けるのが早いと思います。
補足
管理部門で働いている私は一度もセミナーというものを 受けたことがありません。受けさせて 会社と関係なしに、自腹で行くとなると。。 「安くて、休日で」がいいですね。 ORACLE社のものでなくても、様々な会社でやっているようで、ネットで探してみてるのですが、高いですね(^^;) しかもインストールコース(導入コース)ってないんですか?
- mnabe
- ベストアンサー率33% (427/1283)
まず、買えるなら、Oracleを買ってしまうのが一番早い勉強方法です(間違いなく(^^;) 移行って事ですので、現在動いているシステムがあると思うのですが、それはデータベースを使用しているのでしょうか? 使用しているとすると、何?? 実際に、私は以下の作業をやった事があるのですが... Access2.0 → Oracle7.5x on VB3.0(E) 地獄でした、全てを作りなおしました。 Access95/97 → Oracle7.5x on VB4.0 これもデータベースに関する所を全て作りなおしました。画面やその他の部分は、流用できました(一部ね) SQL Server6.5 → Oracle8x on Delphi(ODBC) コンポーネントの入換えとSQL文法の修正をしてあとはひたすらテストでなんとかなりました。 教訓: DBの移行を最初から考えていない作りになっていると判断できるものは、全て作りなおし位の気分で望まないと、痛い目に合う。
補足
Oracleのpersonalなるものをとりあえず本屋さんで買いました。 Workgroup と Enterprizeというのがあるようですね。 どっちがいいのでしょう?? 現在は Informix社 の Informix を使用しています。 開発現語は主に Informix/4GLです。 どっちにしても移行に関しては全てを順番に作りなおしていく予定です。 地獄ですかやっぱり。。。(笑)
補足
Informix もRDBであると思います。 現在使用している Informix のデータの移行は テーブルごとにDATAファイルを作成し、 文字コードの変更が必要ならば変更→受入を行う予定です。 プログラムの移行に関しては残念ながら全てコーディングから行うことになりそうです。 現在プログラムはInformix専用言語(Informix/4GL・Informix/ECなど)で書いています。 言語でそのまま使えそうなのはシェル実行ファイルぐらいではないかと。。。。 テーブル数がInformixのDB3つあわせて約400になります。 (テスト環境分が約半分ですのでデータ転送分で約200テーブル) 移行に関しては処理の塊で移行して並行処理→チェック→運用→次へ といったカタチになると思います。 機種依存文字というのがあるんですね。。。知りませんでした。 残念ながら1件1件つぶしていくしかないのでは?と考えます。 本当に「気長に」なんですが、よろしくお願いします。