OracleからMySQLへのマイグレーション時に発生した問題点
Oracle10gからMysql5.5へマイグレーションを行った際に遭遇したエラーや問題点をまとめました。・行サイズの上限問題
・カラムの中の改行問題(explanation)
・Nullインポート問題
・OracleのDATE型(yy-mm-dd)をMysqlにインポートする際の不具合
・余分な空白が入る
・OracleのCLOB出力問題
・ミリ秒問題
・文字化け
行サイズの上限問題
InnoDBは、テーブルスペースのページサイズの約半分で、ページサイズのデフォルトは16KBなのでデフォルトの行サイズは約8KBです。ERROR 1118 (42000): Row size too large. The maximum row si■行サイズの上限問題の解決策
カラムの中の改行問題(explanation)
SqlPlusは、カラム中に改行がある場合、空行を挿入する仕様となっているため、 Mysqlにインポートする際に空行の部分が、そのままインポートされてしまう。Nullインポート問題
Nullインポート問題として、「MysqlのDate型やint型のNull問題」と「UNIQUEKEYが指定されている場合、空カラムを複数登録できない」 という問題に遭遇した。set echo off set linesize 32767 set pages 0 set trimspool on set feed off spool CSV_m_agencyhoge.csv select '~' || DECODE(AGENCY_CD, '', '\N',AGENCY_CD ) || '~' ||','|| '~' || DECODE(AGENCY_NAME, '', '\N',AGENCY_NAME ) || '~' ||','|| '~' || DECODE(DELETE_FLG, '', '\N',DELETE_FLG ) || '~' ||','|| '~' || DECODE(UPD_DATE, '', '\N',TO_CHAR(UPD_DATE , 'YYYY-MM-DD HH24:MI:SS' ) ) || '~' ||','|| '~' || DECODE(UPD_USER_ID, '', '\N',UPD_USER_ID ) || '~' ||','|| '~' || DECODE(INS_DATE, '', '\N',TO_CHAR(INS_DATE , 'YYYY-MM-DD HH24:MI:SS' ) ) || '~' ||','|| '~' || DECODE(INS_USER_ID, '', '\N',INS_USER_ID ) || '~' from m_agencyhoge ; spool off※区切り文字[,]、文字列の囲み[~]としています。環境に合わせてください。
OracleのDATE型(yy-mm-dd)をMysqlにインポートする際の不具合
Oracle側で99-12-31というデータはMAX年(9999)を意味しているがMysqlにインポートすると1999-12-31と解釈されてしまう。余分な空白が入る問題
Oracleからエクスポートする際に、「set colsep ','」を使うと余分な空白が入り、Mysqlへインポートされる。select emp_id ||','|| dept_id ||','|| first_name ||','|| last_name ||','||salary from emp;
OracleのCLOB出力問題
CLOB型が含まれているデータをCSV形式にエクスポートすると正常に出力されない現象が発生set PAGESIZE 0 set LINESIZE 500 set long 6000 select CLOB_TAG_INFO from t_event_html_info;
ミリ秒問題
Mysqlではミリ秒に対応していないため、Oracle側のミリ秒をインポートするとエラーがでてしまう。| Warning | 1264 | Out of range value for column 'upd_date' at row 1 |■ミリ秒問題の解決策
文字化け
マイグレーションツールを利用する場合、CSVファイルの文字コードと特殊文字により文字化けすることがある。システム監視構築の目次
システム監視ソフトによるシステム監視では、専用エージェントを用いたサーバーのサーバ監視と、エージェントレスのネットワーク監視がある。WEBシステム監視 | 監視項目 | 監視項目説明 | |
---|---|---|---|
サーバ監視 | リソース監視 | CPU使用量 | ユーザ時間とシステム時間におけるCPU稼働率を監視 |
(マルチプロセッサの場合は、総合的な稼働率を取得) | |||
ロードアベレージ | CPUでの処理待ちの実行プロセス数を監視 | ||
メモリ使用量 | 物理メモリ(バッファ+キャッシュを省くこと可能)の使用率を監視 | ||
SWAP使用量 | スワップ領域の使用率を監視 | ||
HDD使用量 | 指定したパーティションの使用率を監視 | ||
WEBレポート (リソース状況) |
リソースの使用状況をWEBレポートとして提供 | ||
プロセス監視 | HTTP(S) | 指定したプロセスの存在を監視 | |
SMTP | |||
DNS | |||
SSH | |||
MYSQL/PostgreSQL | |||
その他多数のプロセス監視 | |||
ログ監視 | システムログ監視(messages,secure) | システムログ(messages,secure)に出力される指定機ワードを監視 | |
ネットワーク監視 | URL監視 | HTTP応答文字列監視 | 対象URLに対してHTTPリクエストを発行し、その応答ページに指定文字列の有無を監視 |
HTTPS応答文字列監視 | |||
サービス応答監視 | HTTP(S) | 各プロトコルに合わせたネゴシエーションし正常に応答があるのかを監視します。 | |
SMTP | |||
Port監視 | 全ポートに対応 | 指定ポートのオープンを監視 | |
死活監視 | PING | PINGによる応答を監視 |
システム監視構築の記事一覧
・システム監視Muninの導入手順
Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用 |
Nagios統合監視[実践]リファレンス |
サーバ/インフラエンジニア養成読本 管理/監視編 [24時間365日稼働を支える知恵と知識が満載!] |
Muninによるシステム監視
Munin は,システムリソース(ディスク、メモリ、CPU、トラフィック等の使用量を自動でグラフ化し, Web ブラウザから簡単に見れることができるようにするソフトウエアです。Munin構築手順
ここでは、システム監視ソフトであるMuninのインストール・設定手順を説明します。EPELリポジトリの導入
Muninは、標準リポジトリでは提供されておらず、EPELリポジトリから提供されています。# wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -ivh epel-release-6-8.noarch.rpm
# vi /etc/yum.repos.d/epel.repo ------------ enabled=0※enabledの値をすべて「0」にする。
Muninのインストール
監視対象のノードには「munin-node」をインストールし、監視サーバには「munin」をインストールする。# yum --enablerepo=epel install munin-node・監視サーバ
# yum --enablerepo=epel install munin※「--enablerepo=epel」として、EPELリポジトリを明示的に指定する。
# vi /etc/cron.d/munin --------------- #*/5 * * * * test -x /usr/bin/munin-cron && /usr/bin/munin-cron
監視対象ノードの設定
初期設定のままでは不要なデータも取得するため、Munin-nodeが起動していた場合は停止させる。# /etc/init.d/munin-node stop・監視サーバからのアクセスを許可する
# vi /etc/munin/munin-node.conf ---------------- allow ^127\.0\.0\.1$ allow ^172.\.18\.1\.10$その他、iptablesでポートを閉じている場合は、監視サーバから監視対象ノードの4949ポートを許可する必要があります。
監視サーバの設定
監視スタート後、監視画面について、追加はできるが監視ノードの削除やレイアウト変更はできないので、注意してください。# vi /etc/munin/munin.conf --------------------------- [1.DMZ;WEB;node-01] address 172.18.1.120 use_node_name yes load.load.critical 5 cpu.user.warning 300 cpu.user.critical 350
監視プラグインのカスタマイズ
・不必要なプラグインの削除# cd /etc/munin/plugins # rm entropy fw_packets ntp_kernel_err ntp_kernel_pll_freq ntp_kernel_pll_off ntp_offset ntp_states proc_pri uptime上記ディレクトリにシンボリックリンクを張ることで各プラグインスクリプトの出力結果を取得する。最低限のプラグインを設定し、必要になったときリンクを作成する。
Apacheの設定(Muninのグラフ表示設定)
WEBにてリソース情況が確認できるよう、Apacheに設定を追加する。 下記の設定では、基本認証をかけています。# Include conf.d/munin.conf -------------------- Alias /munin/ /var/www/html/munin/ Options ExecCGI FollowSymLinks -Indexes AuthUserFile /home/Admin/.htpasswd AuthName "Munin" AuthType Basic Satisfy any Order Deny,Allow Deny from all Allow from 127.0.0.1 require user administrator
# vi /etc/httpd/conf/httpd.conf ---------------- Include conf.d/munin.conf
# chmod 775 /var/log/munin # chown munin:apache /var/log/munin
# cd /var/www/html/munin/1.DMZ # ln -s /var/www/html/munin/1.DMZ ./1.DMZ
Muninのシステム監視開始
・全サーバにおいてmuni-nodeの起動と自動起動設定# /etc/init.d/muni-node start # chkconfig munin-node on
*/5 * * * * munin test -x /usr/bin/munin-cron && /usr/bin/munin-cron #*/5 * * * * test -x /usr/bin/munin-cron && /usr/bin/munin-cron