テーブル定義の移行でよく使う方法

社内DBを試行錯誤しているため、DB間データ移行の前段としてテーブル定義をコピーしたいことがある。 大抵のDBでは無料でもツールが充実しており、ODBCライブラリを入れればよっぽど問題ないと思うのだが… MySQL … Workbench Oracle … SQL Developer SQL Server … SQL Server Management Studio(SSMS) Windows 10 Pro 64bitで、SSMSからOracleにアクセスしようとしたところ、どうにもエラーでうまく行かない。64bitのInstant Client + ODBCをインストールし、OSのODBC管理ツールでテスト接続は成功しているのだが… で、こういう時はAccessでODBC経由でリンクを貼る分にはまず失敗しない。この状態でテーブルをAccessにテーブル定義のみコピーし、そのAccessのテーブルをSSMSでインポートするとうまくいく。

<span title='2017-11-30 10:51:34 +0000 UTC'>November 30, 2017</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

Dockerでstorageにoverlayを使う際の注意事項(2016/2時点,CentOS7)

Dockerでstorage driverにoverlayを使ってはまったこと。 2016/2時点 CentOS7でのdocker(1.8.2)においては、コンテナのファイルが2GBを超えると、読み込めなくなるようだ。 mariadbにて、dumpファイルの取り込みまでは問題ないのだが、これを一旦停止し、再度立ち上げようとすると「27: File too large」というメッセージが出て起動できない。 ググってみたところ、どうもこのメッセージはMariaDBというよりもOSが出しているようだ。そのことに気づいてoverlayをdevicemapperに戻したところ、現象は発生しなくなった。 開発者サイドでも、まだoverlayは何が起こるかわからない、というスタンスらしいので、要注意。

<span title='2016-02-09 02:00:00 +0900 +0900'>February 9, 2016</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

Dockerでのmysql利用時の注意

Dockerでmysqlを利用する際にはまったこと。 Dockerfile等で初期データを流し込みたい場合、mysqld_safeを「バックグラウンド」で起動しておいてmysqlコマンドで流しこみを行うのだが、 nohup mysqld_safe & mysql -u root < init.sql のように実行してしまうと、 mysqlサーバが起動する前にコマンドが帰ってきてしまうため2行目で「mysql.sockがない」という旨のエラーが返ってきてしまう。 このような場合、1行目の後に以下のようなループを噛ませるとうまく行くはず。(bashの場合) nohup mysqld_safe & for {1..10}; do if [ -e /var/lib/mysql/mysql.sock ]; then break fi sleep 1 done

<span title='2016-02-09 01:00:00 +0900 +0900'>February 9, 2016</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41