分享:mysql異地Database Backup執行個體代碼

來源:互聯網
上載者:User

標籤:mysql   備份   

  分享:mysql異地Database Backup執行個體代碼


  mysql現在應用在作業系統中包括有linux系統與windows系統,下面是多備份分享常用的兩種系統中實現mysql異地Database Backup,有需要瞭解的朋友可參考。


  windows的任務計劃定時執行該檔案。


  檔案內容如下:


  cd F:/MySQLBackup


  f:


  mysqldump -h ip -uusername -ppassworddbname>F:/MySQLBackup/PersonBackupMonday.sql


  username:資料庫使用者


  password:資料庫密碼


  dbname:資料庫名稱


  恢複資料:可以把資料拷貝到資料庫的伺服器中


  C:/Documents and Settings/Administrator>mysql -u username –p


  密碼:password


  代碼如下複製代碼


  mysql> use dbname;


  mysql> source F:/MySQLBackup/PersonBackupMonday.sql


  linux的中實現異地資料備份


  在ubuntu測試通過。完成任務是本地備份。可用於伺服器端。


  #! /bin/bash


  echo "backupmysql V1.0"


  ###date stamp###


  datestamp=$(date +%Y-%m-%d)


  ###path ###


  startdir=/home/user/mysqlbackup


  ###bakfile prefix###


  fileprefix=sql


  echo "sqldump is starting.."


  ###bakup command####


  mysqldump -uuser -ppassword -l databasename > $startdir/$fileprefix$datestamp.sql


  echo "########################################################################"


  echo "sqldump is done"


  ###tar file ###


  cd $startdir


  echo "the current directory is :"


  pwd


  tar zcvf $startdir/$fileprefix$datestamp.tgz $fileprefix$datestamp.sql


  ###del the sql file###


  rm -rf $startdir/$fileprefix$datestamp.sql


  echo "#######################################################################"


  echo "...... Done"


  如果遠程將備份取到異地,如下我寫的一個用戶端用例(測試環境redhat-as-5)。用sftp協議。


  #! /bin/bash


  sftp [email protected] << EOF


  cd /home/user/mysqlbackup


  lcd /home/mysqlbackup/


  -get fileprefix$(date +%Y-%m-%d).tgz


  quit


  EOF


  注fileprefix$(date +%Y-%m-%d).tgz 與伺服器端備份的相對應,


  路徑為、home/user/mysqlbackup


  get命令前加一個"-"以防止其執行錯誤時sftp執行過程被終止.


  註:假設資料庫伺服器名字為database,備份資料的伺服器的名字backup,我們需要在backup伺服器端運行指令碼來取得database伺服器端的備份檔案。


  兩台伺服器採用sftp傳輸檔案


  但是現實shell中sftp登入需要互動密碼,


  為了在遠端伺服器採用非互動的sftp,我們可以選擇用密鑰的方法進行驗證登入許可權。從而代替密碼驗證方式。


  首先需要我們在backup產生密鑰,並將其公開金鑰上傳到database伺服器。


  因為shell指令碼中使用sftp時必須用到金鑰組(公開金鑰和私密金鑰),


  可以使用如下命令


  $ssh-keygen -d


  然後分發公開金鑰


  為了使用密鑰,必須將公開金鑰分發到欲登入的遠程backup伺服器上,


  1.copy公開金鑰到欲登入的遠程伺服器的遠端使用者的家目錄下,例如:


  cp id_dsa.pub到database:/home/user/.ssh/


  若目錄/home/user/.ssh/不存在,需要我們手工建立。


  公開金鑰檔案更名為authorized_keys


  修改公開金鑰檔案的存取權限


  chmod 644 authorized_keys


  其實資料異地備份並不難,看你怎麼選擇了。手動操作和自動操作還是有差別的,使用多備份的Database Backup操作起來很簡單,註冊帳號之後建立備份任務,選擇Database Backup。接著按照提示把主機ip或網域名稱等填寫正確即可開始備份了。並且在備份途中多備份自動壓縮加密備份到多個雲端平台,需要時一鍵下載恢複即可。比起手動恢複輕鬆很多吧?


本文出自 “大丸子” 部落格,請務必保留此出處http://12478147.blog.51cto.com/9663367/1601616

分享:mysql異地Database Backup執行個體代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.