Version 15 (modified by jazz, 16 years ago) (diff) |
---|
2008-10-15
備份聯合目錄 PostgreSQL 到實驗主機
- 安裝 PostgreSQL 與 phpPGadmin
- [參考] Debian Linux 架設 PostgreSQL + PhpPgAdmin
- phpPGAdmin - 官方網站: http://phppgadmin.sf.net
jazz@oceandb:~$ sudo apt-get install postgresql phppgadmin jazz@oceandb:~$ sudo -u postgres psql template1 Welcome to psql 8.3.4, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit template1=# create user PG_USER with password '${PASSWORD}' createdb createuser; CREATE ROLE template1=# alter user postgres with password '${PASSWORD}'; ALTER ROLE template1=# \q jazz@oceandb:~$ sudo vi /etc/apache2/conf.d/phppgadmin jazz@oceandb:~$ sudo apache2ctl restart
-
etc/apache2/conf.d/phppgadmin
9 9 order deny,allow 10 10 deny from all 11 allow from 127.0.0.0/255.0.0.0 ::1/12812 #allow from all11 # allow from 127.0.0.0/255.0.0.0 ::1/128 12 allow from all 13 13 14 14 <IfModule mod_php5.c>
-
- 把 PostgreSQL 資料庫 dump 出來
- 先查詢 PostgreSQL 版本: 8.0.3
- [參考] PostgreSQL 7.3.21 Documentation pg_dumpall
- [參考] PostgreSQL 8.0.0 中文文件 Chapter 22. 備份和恢復
# 只看到有安裝 PostgreSQL 的 JDBC 套件,卻沒看到 PostgreSQL Server 套件 [odb@ncor odb]$ rpm -qa | grep sql libdbi-dbd-mysql-0.6.5-5 rh-postgresql-libs-7.3.9-2 mysql-3.23.58-16.RHEL3.1 php-mysql-4.3.2-23.ent mysql-devel-3.23.58-16.RHEL3.1 mod_auth_mysql-20030510-2.ent postgresql-jdbc-8.0.3-1PGDG mysql-server-3.23.58-16.RHEL3.1 mysql-bench-3.23.58-16.RHEL3.1 # 從目前執行中的 process 知道安裝在 /usr/local/pgsql 底下 [odb@ncor odb]$ ps aux postgres 2643 0.0 0.1 17864 1708 ? S Sep26 0:00 /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data # 從 /usr/local/pgsql/doc/index.html 可以得知版本為 8.0.3 [odb@ncor odb]$ sudo -u postgres /usr/local/pgsql/bin/pg_dumpall > ncor_pgsql.dumpall [odb@ncor odb]$ du -sh ncor_pgsql.dumpall 3.5M ncor_pgsql.dumpall
- 用 scp 拷貝到實驗主機,並用 psql 指令把 dump 結果復原到實驗主機上
jazz@oceandb:~$ sudo -u postgres psql template1 < ncor_pgsql.dumpall
轉換 PostgreSQL 到 MySQL
- [工具] pg2mysql converter (PostgreSQL to MySQL Converter)
- [參考] 遇到 triggers , sequences , domain 這幾個差異時就沒輒了
jazz@oceandb:~$ wget http://www.lightbox.ca/pg2mysql-1.2.tar.bz2 jazz@oceandb:~$ tar jxvf pg2mysql-1.2.tar.bz2 jazz@oceandb:~$ cd pg2mysql-1.2/ jazz@oceandb:~/pg2mysql-1.2$ sudo apt-get install php5-cli jazz@oceandb:~/pg2mysql-1.2$
- 轉出來的結果有錯,因為有用到 sequence (序列)
- int(11) auto_increment smallint auto_increment NOT NULL, + serial int(11) auto_increment NOT NULL, name varchar(10) NOT NULL, tel varchar(20) NOT NULL, fax varchar(20), @@ -10,5 +10,5 @@ admin bool NOT NULL, account varchar(20) NOT NULL, password varchar(20) NOT NULL -, PRIMARY KEY(`int(11)`) -) TYPE=MyISAM; +, PRIMARY KEY(`serial`) +) TYPE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
- 轉出來的結果有錯,因為有用到 sequence (序列)
- [工具二] SQL::Translator (aka SQLFairy)
- [參考] 用 Perl 寫的 SQL::Translator (aka SQLFairy)
jazz@oceandb:~$