メイン

database アーカイブ

2009年10月22日

MyISAM でトランザクションを実行

InnoDB ではなく MyISAM ストレージエンジンのテーブルに対して

BEGIN;
UPDATE~
INSERT~
UPDATE~
COMMIT;

としてもエラーは出ない。途中で、
ROLLBACK;
してもエラーは出ない。
コンソールでは
Query OK, 0 rows affected (0.00 sec)

2009年10月20日

InnoDB を無効にする

MySQL Server の起動に --skip-innodb オプションを指定。
/etc/init.d/mysql restart --skip-innodb
以降、InnoDB テーブルを作成すると
mysql> CREATE TABLE test( cd INT, pactive INT) ENGINE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.01 sec)

Warning (Code 1266): Using storage engine MyISAM for table 'test'

という具合に、強制的に MyISAM テーブルとして作成される。
ちなみに、無効にする前に存在していた InnoDB テーブルは使用できなくなる。

MySQL Server 5.0.27-standard
Vine Linux 4.2 (Lynch Bages)

2009年10月19日

mysqlのワーニング表示

コンソール使用途中でワーニングを表示する
mysql> \W
how warnings enabled.

他に warnings; も

コンソール使用途中でワーニングを非表示する
mysql> \w
Show warnings disabled.

接続開始時にデフォルトでワーニングを表示するオプションは
mysql --show-warnings -u USER -p DATABASE

mysql Ver 14.12 Distrib 5.0.27, for pc-linux-gnu (i686) using readline 5.0
mysql Ver 14.14 Distrib 5.1.30, for Win32 (ia32)

×
mysql Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (i686) using readline 4.3

2009年10月17日

INNODBタイプテーブルを扱えるレンタルサーバー

ロリポップ!レンタルサーバーロリポップ!レンタルサーバー
●サブドメイン
●アクセス解析
●CGI
●SSI
●PHP
●MySQL
●.htaccess
●商用利用運営可能
●ショッピングカート
●SNS

2009年10月15日

INNODBタイプテーブルを扱えるレンタルサーバー

livedoor STARTプランlivedoor STARTプラン
●.htaccessの設定
●Anonymous FTP
●Awstatsアクセスログ解析

●Perl (5.8.8)
●PHP (5.1.6)
●Ruby (1.8.5)
●Python (2.4.3)
●Tomcat (5.5.20)
●Apache (2.2.3)

●MySQL (5.0.22)
●PostgreSQL (8.1.9)

2009年10月14日

INNODBタイプテーブルを扱えるレンタルサーバー

トーマスオブアメリカ 1strentalserverトーマスオブアメリカ 1strentalserver
●SSH
●CRON
●jsp
●servlet

2009年10月13日

INNODBタイプテーブルを扱えるレンタルサーバー

WADAXWADAX
MySQL の INNODB タイプテーブルを扱えるレンタルサーバーは意外と少ない。

●共用SSLが標準で利用可能です。(全携帯電話キャリアSSLモデル対応)
●セコムトラストシステムズ定期セキュリティ診断(脆弱性診断)
●セコム不正侵入検知予防サービス(IPS)
●ケータイサイト対応。サイトの可能性をさらに拡大。
●CGI/PHP/MySQL/PostgreSQL対応
●データ転送量は無制限
●便利なWebメール機能を搭載
●大規模DoS/DDoS攻撃も防御する最新セキュリティ
●高い信頼性のウイルスチェックを搭載
●高機能な迷惑メール(スパムメール)フィルタを搭載

2009年03月15日

テーブル定義書の自動生成 その4

完成例


























































項番 列名 属性名 データ型 制約 カラム説明
0 cd cd int(10) PRIMARY KEY AUTO_INCREMENT NOT NULL  
1 ID id varchar(128) NOT NULL
UNIQUE INDEX
2 パスワード pass varchar(128) NOT NULL
MD5
3 クラス class int(1) DEFAULT 0
1:A
2:B
2択
コードで格納 etc...
4 更新日時 xcreate datetime    
5 作成日時 xupdate datetime    

2009年03月11日

Migration 先のMySQLテーブル情報

STATUS;
DESC tableName;
DESC tableName fieldName;
テーブル クリエイト 命令もある
SHOW CREATE TABLE tableName;

MySQL Server version: 5.0.27-standard

2009年03月09日

Cayenne(カイエン)

Modelerと呼ばれる設定ツールでマッピングすると各テーブルを操作するための基底クラスのコードやXML設定ファイルを自動生成する。
http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_1.html

activeobjects よりは軽快に動作する。基底クラスのコードやXML設定ファイルのカスタマイズも比較的容易。
行を操作する場合は絞込みを工夫しないと大量のメモリを消費する(out of memoryで停止)。

いろいろ勉強になったところで、自分でコーディングしたほうが確実で早いと判断に。

2009年03月08日

activeobjects(アクティブオブジェクト)

現時点で最も簡単で比較的後発のO/Rマッピングツール。
https://activeobjects.dev.java.net/
javaの「アノテーション」を理解できれば、XML設定ファイルやGUI開発ツールEclipseにも依存しない。

確かに簡単。getter,setterメソッドを定義したinterfaceを作成してclasspathにactiveobjects-0.8.2.jarをとおすだけ。
主キーがないテーブルのマッピングは厄介?複合キーのテーブルを扱えない。
大きなデータ列を含むテーブルは工夫しないと大量のハッシュマップメモリを消費する(out of memoryで停止)。
動作遅い。

続きを読む "activeobjects(アクティブオブジェクト)" »

2009年03月07日

O/Rマッピングツール

全ての型やデータによる振る舞いをコーディングするのは、規則性が高くできればツールなどで自動的に正確なコードを生成させたい。

●Java標準のO/Rマッピング機能「Java Persistence API」
http://itpro.nikkeibp.co.jp/article/COLUMN/20060627/241918/?ST=develop&P=1
●Javaオブジェクトをデータベースへマッピング - Mr. Persister 3.0.1
http://journal.mycom.co.jp/news/2005/09/08/013.html
●Castorでデータバインディングに挑戦
http://www.atmarkit.co.jp/fxml/rensai2/xmltool03/01.html
●Hibernateで理解するO/Rマッピング★重量級
http://www.atmarkit.co.jp/fjava/rensai3/ormap01/ormap01.html
●DbUtils、Persist、Butterfly Persistence
http://d.hatena.ne.jp/Kishi/20081212/1229076102
●Cayenne★★★★
http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_1.html
●O/RマッピングをサポートするEclipseプラグイン「CROSSFIRE O/R」
http://codezine.jp/a/article/aid/339.aspx
●activeobjects★★
https://activeobjects.dev.java.net/

2009年03月06日

OracleからMySQLへの移行

 マイグレーションには、MySQL Migration Toolkit でいけることを確認済み。ただし、全く同じテーブル構造で、全自動でなくINSERTのSQL文を生成させテキストエディタで手修正することが前提。
 Lua と呼ばれるスクリプトでマイグレーションを制御できるが、どこまで可能か・記述方法の調査は断念。
 業務で稼動している既存システムを切り替える為 停止できる期間は制限付き、人の手作業によるミスのリスクがある。さらにスキーマの設計を見直すための移行フェーズを予定しているため

oracle(スキーマA)
  ↓MySQL Migration Toolkit
MySQL(スキーマA)
  ↓?
MySQL(スキーマX)

は保険としておき、一気に新しいスキーマへ変換する際の java バッチアプリを検討。

oracle(スキーマA)
  ↓java バッチアプリ
MySQL(スキーマX)

2009年03月05日

MySQL Migration Toolkit その4

 なぜか、Windows XP Professional で、MySQL Migration Toolkit の 最初のステップ java loader をパスしない。なお、XPの場合「Windows ファイアウォール」のブロック解除を促される。
 Windows 2003 server では動作確認できている。
java の version は 1.6.0_11。
 根本的な解決ではないものの MySQLMigrationTool.exe にはオプションがあり
cd "C:\Program Files\MySQL\MySQL Tools for 5.0"
MySQLMigrationTool.exe -debug
で最初のステップを進められる。

続きを読む "MySQL Migration Toolkit その4" »

2009年03月04日

実際に発行されたSQL

Oracle のJDBCの場合、デバッグ用のドライバを使えばトレースが取れる。
%ORACLE_HOME%\jdbc\lib\ojdbc14_g.jar を %CLASSPATH% に通して、実行時に
java -Doracle.jdbc.LogFile=true -Doracle.jdbc.LogFile=./oracle.log application
で、とすればカレントのoracle.logにトレースされる↓

続きを読む "実際に発行されたSQL" »

2008年12月20日

MySQL Migration Toolkit その3

Oracle から MySQL へのデータ移行中のエラーその3
最後に残ったエラーメッセージ
Unknown column '0x' in 'field list'

insertスクリプト(Inserts.sql)を生成させて
mysql -u taro -p dbname < Inserts.sql
とすると
ERROR 1054 (42S22) at line 74: Unknown column '0x' in 'field list'
SQL 文を眺めると、『0x』という数字でもなく文字列でもないデータをBLOB列へ insert、バグ?。
移行元の BLOB 列の値がNULLのときの SQL 文が変。
エディタでinsertスクリプト(Inserts.sql)の『0x,』を『NULL,』に置換することで解決。

2008年12月19日

MySQL Migration Toolkit その2

 Oracle から MySQL へのデータ移行中のエラーその2
Incorrect string value: '\xE9\xA6\x99\xE6\xB8\xAF...' for column 'subject' at row 1
 デフォルトのままだと、Migration Plan「Object Mapping」で Migration of type Oracle Schema「Parameter」が「Latin1」となっているのを「Multilanguage」に変更。
 これで移行先のCREATE DATABASE文が
CHARACTER SET utf8 COLLATE utf8_general_ci;
となり、上記エラーは全て解消。

 ちなみにWindows Server 2003 で
移行元は Oracle9i、インスタンス構築時のキャラクタベースは EUC
移行先は MySQL Server 5.1.30、インスタンス構築時のキャラクタベースは UTF8

2008年12月18日

オラクルのjdbc経由で実際に実行されたSQL文を確認

●javaソース変更
 Class.forName( "oracle.jdbc.driver.OracleDriver" );
  ↓
 Class.forName( "com.p6spy.engine.spy.P6SpyDriver" );

●実行パスに spy.properties を配置。
realdriver=oracle.jdbc.driver.OracleDriver ←コメント外し
#realdriver=org.gjt.mm.mysql.Driver ←デフォルトをコメントアウト

●CLASSPATH に追加。
CP=$CP:./p6spy.jar
export CLASSPATH=.:${CP}

●p6spy.jar を指定した通りに配置して普通に実行。

http://www.p6spy.com/
ちょっと期待外れ

2008年12月10日

MySQL Migration Toolkit その1

 Oracle から MySQL へのデータ移行中、レポート内に大量の
Packet for query is too large (8056629 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

 移行元は Oracle のblob フィールドに最大10MBをバイナリを保持する仕様なので
C:\Program Files\MySQL\MySQL Server 5.1\my.ini
の末尾に
max_allowed_packet=10M
を追加。

2008年12月09日

MySQL GUI Tools

Windows 上の Oracle9i データ を マック OS X の MySQL への移行調査。
『MySQLマイグレーションツールキット』が含まれる『MySQL GUI Tools』が存在する。
http://dev.mysql.com/downloads/gui-tools/5.0.html
MySQL GUI Tools =
+ MySQL Administrator 1.2
+ MySQL Query Browser 1.2
+ MySQL Migration Toolkit 1.1
都合のよいことに MAC OSX 10.4 (Universal binaries) 5.0-r12 12.4M がある。
ところが、12/3 現在のアーカイブ(mysql-gui-tools-5.0-r12-osx10.4-universal.dmg)には、MySQL Migration Toolkit が含まれていない。
Windows 上の MySQL へローカル移行すればよいだろうということで、Windows (x86) 5.0-r14 17.7M (mysql-gui-tools-5.0-r14-win32.msi) を採用。
Oracle9i(9.2.0.3) 導入時に入る java 1.3.1_01 でも起動している。

2008年12月06日

オラクルのパッチ導入

昔実施した、すっぴんのオラクル9iへパッチ(Oracle 9iPatch Set 9.2.0.3.0)を導入したときのの手順記録。
Windows server 2000, 2003 ともにOK。

続きを読む "オラクルのパッチ導入" »

2008年12月05日

OFFSET記述できない古いmysql

今まで問題なく動作していた ethna の Ethna_AppObject::searchProp()、Ethna_AppManager::getObjectPropList() で別の環境で突然SQLのシンタックスエラーが。

nativecode=1064 ** You have an error in your SQL syntax near 'OFFSET 0' at line 1

未だに古い mysql server 3.23.58 を使っているサーバー。OFFSET句を記述できない?
互換性の切り替えはあるのか・・・。時間がないので、Ethna_AppObject から継承されている APPID_TABLEID.php 内のメソッドを↓こんな感じでオーバーライド。

続きを読む "OFFSET記述できない古いmysql" »

2005年01月22日

本格データベースがイチキュッパ?!

DB2
SQLのマスターにいいですね。
データベースといえばオラクルが元気いいかもしれないけどDB2も現場は多い。

なんでも イチキュッパシリーズ価格破壊らしい。

リンク

About database

ブログ「remix.gr.jp」のカテゴリ「database」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

次のカテゴリはethnaです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34