公司的 ERP 系統能夠允許中斷多久呢 ?
有沒有想過當 TIPTOP 主機掛了該怎麼辦,
中斷的時間的長短其實就取決在能夠花費多少金額。
最好就是 HA 再加上異地備援啦,當然也是所費不貲囉~~
在有限的資源下當然就是將 TIPTOP 主機虛擬化是最經濟的作法。
當 ERP 系統發生無法立即排除的情況時,
就可以馬上啟動虛擬的 TIPTOP 主機,再還原備份的檔案和資料庫,
就足以應付急迫的公司作業。
再來就是說明如何將目前的 TIPTOP 主機做線上遷移到虛擬主機,
Linux 的好處就是所有的設定都是文字檔,不像 windows 還有 register 註冊資料庫 。
所以只要檔案複製過去就可以使用了。
要先切換到 root 的使用者。
1. 把 TIPTOP 主機的資料 image 到檔案,先用 df -h 查看 partition 的空間大小,
或是佔用的空間有多少。
2. 將磁碟、partition 或是建立空的映象檔做 image,以下二選一即可 。
A.假設將 sda1 的 partition 做成 sda.img 映象檔,執行 dd if=/dev/sha1 of=/u2/sda1.img 。
(此指令是破壞性磁碟指令,需注意。如果 sda1 為 100G,就會建立 100G 的檔案)
B.或是建立空的 image 檔,再做資料同步複製也可以。
建立空的 20 G 大小的 image 檔: dd if=/dev/zero of=/u2/sda1.img bs=1G count=20。
格式化成 ext3 格式:mkfs.ext3 sda1.img。
掛載到 \mnt 目錄: mount /u2/sda1.img /mnt。
同步複製: rsync -av /u1/* /mnt。
3. 將檔案傳到虛擬主機上,然後轉換成 vhd 檔,利用 vhdtool.exe (需下載)做 convert。
指令: vhdtool /convert sda1.vhd。
4. 建立新的 guest virtual machine , 建立傳統網路卡需綁網卡的 mac ,並掛載 vhd 檔。
5. 開機,可以開啟喔~~~完成一半了。
6. 再來就是修改設定檔了。我會做下列的修改。
修改登入是 text mode: vi /etc/init.tab 的 id:5:initdefault: 將 5 改為 3。
設定網卡: vi /etc/sysconfig/network-scripts/ifcfg-eth0
(應該會有一個 bak 檔,直接複製就好 cp ifcfg-eth0.bak ifcfg-eth0 )
修改開機掛載的磁碟,有可能原本是 sda1 變成 hda1,先用 fdisk -l 查看 。
設定開機自動掛載: vi /etc/fstab,將 sda 改為 hda。
7. 如果虛擬主機的記憶體設定太小,Oracle 有可能會開不起來,
因為 SGA 設定必須在 tmpfs (ram disk) 以內,
查看 tmpfs 空間: df -h 。
到原本的 TIPTOP 主機查看 Global SGA memory ,
進入 sqlplus 執行 show parameter mem,查看 memory_target 和 memory_max_target。
然後再修改 tmpfs 的大小,執行: vi /etc/fatab ,在tmpfs 加上 size=4G。
8. 重新啟動,完成。記得千萬要隔離二台主機的網路,不然 mac 位置一樣會造成異常。
9. 平時就保持 Standby 的狀態,有問題時,將備份的程式直接蓋過去,就不多說明了。
10. 再來就是將 DB 也直接 import 進去,備援主機就完成。
如果能夠將資料庫獨立出去是最好了,還原就快多了,
平常第二台 Oracle 主機待機,利用第一台 Oracle 主機的 redo log 或 archive log 做資料的同步。
資料有損失的時間點就可以大幅的減少。
只需要修改 oracle 的連線檔:/u2/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
就可以切換到第二台 Oracle 主機做存取。
如果想要把測試區和標準區的資料庫刪除來節省磁碟空間和記憶體空間的,
在 Oracle 10g 以後就有提供 drop database 的指令,
以 sys 身份用 sysdba 的方式來登入 sqlplus,
sqlplus sys/sys as sysdba
alter database close; 關閉 database
alter system enable restricted session; 改為 restrict 模式
drop database; 刪除資料庫
刪除資料庫會連同 dbf 檔和 control file、redo file 全部刪除。
因為是 RHEL 5.5 版架設在 Hyper-V 上,所以需安裝 Linux Integration Services v2.1。
# mkdir /media/cdrom
# mount /dev/cdrom /media/cdrom
# mkdir /opt/linux_ic_v21_rtm
# cp -R /media/cdrom/* /opt/linux_ic_v21_rtm
# cd /opt/linux_ic_v21_rtm
# make
# make install
# reboot
下載 adjtimex RPM 套件確保時間的準確性
# rpm -ivh /media/cdrom/Server/adjtimex-1.20-2.1.x86_64.rpm
因為是 P2V 所以需要將 /boot/grub/grub.conf 的 hda=noprobe hdb= norpobe 去掉,不然會無法開機。
然後再放 RHEL 5.5 或是 CentOS 5.5 的安裝光碟重新編譯 Kernel。
1. 使用安裝光碟開機
2. 進入救援模式,輸入 linux rescue
3. chroot /mnt/sysimage 指令將目前的檔案系統環境,由光碟掛載點切換回虛擬主機的硬碟掛載點
4. cd /boot 指令切換目錄
5. ls /lib/modules」指令或「cat /etc/grub.conf」指令查看檔案內容來得知Linux核心版本
6. mkinitrd –v –f initrd-2.6.18-194.el15.img 2.6.18-194.el15
7. 重新開機
取消螢幕保護
修改 /etc/rc.d/rc.local 加入 setterm -powersave off -blank 0
備註:如果想要修改 IP ,需修改以下的檔案:
/etc/hosts
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network
/etc/resolv.conf
/u1/genero/fgl/etc/fglprofile
/u1/genero/fgl.ws/etc/fglprofile
/u1/genero/fgl.dev/etc/fglprofile
/u1/topprod/tiptop/bin/tiptop_env
/u1/usr/tiptop/.rhosts
license.sh 或是修改 cl_user.4gl
其他 License 相關問題就不在此說明了。