數據庫數據備份與恢復

數據庫數據備份與恢復

經過CMD備份數據庫,包含Mysql和Oracle
PS: PLSQL以及Navicat 的工具中也有相似的功能能夠實現數據庫的備份

MySQL:

備份數據庫:

  • 使用mysqldump命令 :mysqldump -uroot -proot [dbname]> f:/backup/backupfile.sql
  • 備份多個數據庫:mysqldump -u username -p --databases [dbname1] [dbname2]> backupfile.sql
  • 備份全部數據庫:mysqldump -u username -p --all-databases > backupfile.sql
說明: 默認在電腦的當前用戶目錄下(例: C:\Users\LEGION

問題:

  • 使用mysqldump導出時提示 :Warning:A partial dump from a server that has GTIDs html

    Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all  transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.
    • 緣由:GTID是5.6之後,加入了全局事務 ID (GTID) 來強化數據庫的主備一致性,故障恢復,以及容錯能力。
官方給的:A global transaction identifier (GTID) is a unique identifier created and associated with each transaction committed on the server of origin (master). 因此多是由於在一個數據庫裏面惟一,可是當導入其餘的庫就有可能重複。
- 解決:按照提示添加:`--set-gtid-purged=off `或`–gtid-mode=OFF` ;
    即:`mysqldump -uroot -set-gtid-purged=off -p mydbname>fbackupfile.sql`。


還原數據庫:

  • 直接使用mysql命令:mysql -u root -p [dbname] < backup.sq


更多參考mysql


Oracle:

  • 導出(exp):
    exp 用戶名/密碼@IP/ORCL file=e:\backupfile.dmp owner=(用戶名)
    例:exp myName/myPwd@127.0.0.1/ORCL file=e:\backupfile.dmp owner=(myName)
  • 導入(imp):
    imp 用戶名/密碼@IP/ORCL ignore=y full=y file=e:\0202daochu.dmp log=e:\log0202.log
    例:imp myName2/myPwd2@127.0.0.1/ORCL ignore=y full=y file=e:\backupfile.dmp log=e:\log0202.log


參考:
Oracle數據庫三種備份方案
Oracle數據庫邏輯備份與恢復
相關文章
相關標籤/搜索