脫O把妹,記錄這一週來遷移至MySQL的一些心得

· 背景 mysql

    公司要把一些老設備退服,一些陪伴我多年的DB要下線了,捨不得。正好藉此機會,手賤把本身3個"回收站"DB遷移到MySQL上,也算是趕一把時髦。等真正看着這些老設備下線了的那一天,也會不盡感嘆一個時代結束了。linux

· 心得 git

  1. 芒果:愛你不容易,開始我想是往上遷,由於文檔多/API多,遊刃有餘,支持不規則列,最符合個人須要。惋惜,除了字符集以外。。。詳見後面第7點。
  2. 共享OR獨立:最先碰到的問題當屬目標數據庫的容量和存儲設計,二者表空間管理上各有優點。開始一心想用Raw設備+innodb,但發如今共享和獨立表空間上出現了卡殼,共享表空間能夠發揮RAW設備優點,可是獨立表空間怎麼配置貌似都沒法支持。不過好在個人單表MAX大約15G,最大記錄數在7E不到。算了仍是圖方便,獨立吧,棄用RAW。你們遷移前能夠MAX下原表dba_segments。對將來也算有個數了。
  3. EXT3 OR EXT4:因爲沒有了RAW設備,在建盤的時候沒有多想,等命令敲下去,發現建成EXT3,因而找理由安慰本身。有機會再改EXT4吧。
  4. DATEDATETIME/TIMESTAMP:這個算是比較麻煩的,原先不管是C/JAVA的函數仍是CONTROLFILE,對於日期時間處理都能個性化設置,方便了外部程序的各類時間形式。但當入MYSQL表時候就得嚴格遵照了,尤爲是LOAD DATA,找了半天也沒找到SKIP,這點上ORACLE仍是比較厚道的。好吧,只能這樣了。一個個程序得改。
  5. WITHOUT UPDATE PID FILE:我X,真心迷宮啊。最先是在本身VM+CENTOS上測試,一改數據目錄就報錯了,最後發現竟然是SELINUX的問題。紅帽默認DISABLE,良心啊。改完以後,各類破壞測試一路推平。
  6. DBLINK:這個東西純技術角度上將是個神器,但管理上會有很大麻煩。爲了遷移歷史數據,固然但願是越方便越好,有ORACLEMYSQL的,但反向的沒有。怎麼辦呢?以後本身動手寫腳本遷移。話說ORACLE收購了它也有段時日了,怎麼不融通一下呢?
  7. 圖形工具:又一個大坑。我的信仰:"任何再NB的軟件,最終沒法逃不了用戶CTRL+C/CTRL+V的雙指"。最直接的問題,我也複製1~N列怎麼辦?我要智能聯想怎麼辦?。有時候,我的以爲ORACLE的成功以後80%歸功於PL/SQL。這個需求到MYSQL上理所固然須要繼承。因而從各類GUI工具試了一把,最終選定了Navicat
  8. SHOW PARAMETERS:從ORACLEMYSQL,固然這一關少不了。粗糙點講:SGA按比例擴大後打9折設定INNODB_BUFFER_POOL,REDOLOG按比例擴大設定LOG_BUFFER。其餘本身按需微調吧。
  9. PROC/FUNCTION:這塊原來庫中用的很少,暫時先按着新語法改。另一些VARCHAR最長LENGTH INDEX就很少說了。
  10. DDLORACLE比較厚道也比較蛋疼,我也比較懶,最好一鍵把DDL+INDEX結構導入新表,這個會有不少細節上麻煩,算了,仍是本身弄個SHELL過渡過去吧。當心INDEX
  11. 八國聯軍:Oracle確實很強大,也充分展示着美帝強大的霸權主義,眼紅什麼買什麼。切記:人心不足蛇吞象,難怪股價上不去。

最後,我把整個操做中的過程展示一下,供感興趣的朋友參考,輕拍磚~github

 

· 命令日誌(從無到有,供參考) sql

==準備素材==數據庫

vim /etc/selinux/config
SELINUX=disabled
Yum –e mysql*
Yum install –y cron*
/etc/init.d/crond restart
cd /usr/share/selinux
setenforce 0
tar -xvf MySQL-5.6.12-1.el6.x86_64.rpm-bundle.tar
rpm -qa|grep -i mysql
yum -y remove mysql-libs*
rpm -e mysql*
rpm -ivh MySQL-server-5.6.12-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.12-1.el6.x86_64.rpm
rpm -ivh MySQL-devel-5.6.12-1.el6.x86_64.rpm
service mysql stop
cp ./usr/share/doc/MySQL-server-5.6.12/my-default.cnf /etc/my.cnf
vim /etc/my.cnf

==準備盤==

mkdir /mydata
chown mysql:mysql -R /mydata
關機加盤
fdisk -l認盤
fdisk  /dev/sdb
輸入m、輸入n、輸入PrimaryPartID,2,回車到底,輸入w
start_udev 爲後續RawDevice作準備
vgcreate -s 4M datavg /dev/sdb
lvcreate -L 980M -n data_lv datavg
mke2fs -j -b 4096 /dev/datavg/data_lv
mount -t ext4 /dev/datavg/data_lv /mydata
mv /var/lib/mysql /mydata
vim /etc/fstab
/dev/mapper/datavg-data_lv /mydata ext3 defaults 0 0
Reboot 測試,看自動加載。

==DB參數調整==

Service mysql stop
Mv /var/lib/mysq /mydata
mysql_install_db --user=mysql --datadir=/mydata
chown –R mysql:mysql /mydata
cat /root/.mysql_secret 拿密碼:
service mysql start
mysql -u root –pxxxxx mysql
mysql> UPDATE user SET Password=PASSWORD('111') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit;
alias pp='ps –ef|grep –i  mysql'
service mysql restart
mysql -uroot -p111
mysql> SET PASSWORD = PASSWORD('123');
mysql> show variables like '%char%';  
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.137.1' IDENTIFIED BY '123' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.167.137.102' IDENTIFIED BY '123' WITH GRANT OPTION;
mysql> select user,host from user;
mysql>  set sql_mode='no_auto_create_user,no_engine_substitution';
db2db.sh				
Reboot 測試,看可否自動啓動。

 ==DB2DB.sh==vim

所在位置 https://github.com/zacard-orc/Zacard_DB2DBapp

相關文章
相關標籤/搜索