#author("2023-04-18T03:48:05+00:00","default:wikiadmin","wikiadmin")
#author("2023-04-18T03:48:41+00:00","default:wikiadmin","wikiadmin")
#contents

*Mariadbからの移行 [#wf419fbd]

-予めDBはUTF-8で用意しておく(デフォルトのエンコーディングではバイト数になるため)

 su - postgres
 # コマンドで実行。パスワード入れる
 createuser -U postgres appdbuser --pwprompt -S -R -D
 # psql にて実行
 create database pg_cakephp  OWNER = appdbuser TEMPLATE = template0 ENCODING = 'UTF8';

**mysqldump [#f49d8b29]

 mysqldump -uroot -p cakephp --compatible=postgresql  -t -c --skip-quote-names --skip-extended-insert --skip-add-locks --default-character-set=utf8 > pg_compati_dump.sql

**ツール pgloader [#t6b6572f]

***インストール [#r1842351]

DebianならAptで入れられるのだが、CentOS7はソースインストール

 git clone https://github.com/dimitri/pgloader.git
 cd pgloader
 chmod +x ./bootstrap-centos7.sh
 sudo ./bootstrap-centos7.sh
 make pgloader

bootstrap-centos7.shで「ln: シンボリックリンク `/usr/lib64/libsybdb.so' の作成に失敗しました: ファイルが存在します」のエラーが出るが続行。

***移行実施 [#tdb98e52]

 su - postgres
 build/bin/pgloader mysql://user:password@localhost/DB_NAME pgsql:///pg_cakephp

timeoutとか結構失敗確立高いのでパラメータ調整必要そう。

2023年トライしたら9.xは対応外なのかpg_sequenceがないとのエラー


**Mariadb側の設定変更 [#r5a90c48]

-read/writeともに60でも失敗したので600にした。トータル11分かかっているのでこのぐらいが適正値かと

 MariaDB [cakephp]> show global variables like "%net%timeout%";
 +-------------------+-------+
 | Variable_name     | Value |
 +-------------------+-------+
 | net_read_timeout  | 30    |
 | net_write_timeout | 60    |
 | slave_net_timeout | 3600  |
 +-------------------+-------+
 3 rows in set (0.01 sec)

 MariaDB [(none)]> SET GLOBAL net_read_timeout = 60;

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS