mysql數據不完整遷移腳本

公司新平臺上線,老數據庫中有一些本來的用戶數據須要遷移到新平臺,特意開發這個腳本,以保證數據的完整性,以及效率性
#!/bin/bash

##到出舊數據庫中須要的表

echo "請在腳本語言目錄下準備3個文件,一個爲tables.txt,裏面列出須要從舊數據庫中導出的表名,另外一個是oldmysqlauth舊數據庫的用戶帳號密碼以及數據庫,第三個是newmysqlauth新數據庫的用戶帳號密碼以及數據庫,分別列出格式爲:        1        2        3 ..."
counts=`awk 'BEGIN{t=0;} { t++; }  END{print t; }' tables.txt`
i=1
mkdir sql 
if [ -e tables.txt  ] && [ -e oldmysqlauth ] && [ -e newmysqlauth ];
then
    while [ $i -le $counts ];
    do
       table=`awk -v awk_i="$i" 'NR==awk_i{print}' tables.txt`;
       /usr/bin/mysqldump -u`awk 'NR==1{print}' oldmysqlauth` -p`awk 'NR==2{print}' oldmysqlauth`  `awk 'NR==3{print}' oldmysqlauth` $table  > sql/$table.sql     
       i=$((i+1))
       done
       else    
           echo "程序須要文件不完整,請檢查"
fi
echo "已經將您須要的表從舊的數據庫中導出,即將進行數據表還原"
           
##將舊數據庫中導出的表導入新數據庫中
k=1
if [ -e tables.txt  ] && [ -e oldmysqlauth ] && [ -e newmysqlauth ];
then
while [ $k -le $counts ]; 
do
    table=`awk -v awk_k="$k" 'NR==awk_k{print}' tables.txt`;    
    /usr/bin/mysql -u`awk 'NR==1{print}' newmysqlauth` -p`awk 'NR==2{print}' newmysqlauth`  `awk 'NR==3{print}' newmysqlauth`  < /root/datapopulate/sql/$table.sql     
    k=$((k+1))
    done
    else
        echo "程序須要文件不完整,請檢查"
fi
echo "已經將舊數據庫中的表遷移到新的數據庫中,謝謝使用!"
相關文章
相關標籤/搜索