目錄oracle的三種備份方式 mysql怎么備份一張表 mysql備份的幾種方式 Mysql數據備份 Mysql數據庫備份
兩種方法:①找到bin-mysql-你的數據庫名,直接壓縮備份文件夾(此處備份的是物理文件); ②Mysql管理 我用的是navicat for mysql 里面自動銷信冊檢索你bin-mysql里面的虧宏所有數據庫。然后 右鍵數據庫名有一個 導出坦備sql文件(以sql文件形式導出)
兩種方法:①找到bin-mysql-你的數據庫名,直接壓縮備虧宏份文件夾銷信冊(此處備份的是物理文件);
②Mysql管理 我用的是navicat for mysql里面自動檢索你bin-mysql里面的所有數據庫。然后 右鍵數據庫名有一個 導出sql文件(以sql文件坦備形式導出)
你用的是RDS還是ECS啊,如果是ECS上的數據庫可以用 mysqldump備份出來,或者是phpmyadmin備份出來也很簡單,mysqldump的導出方式是 mysqldump -u 用戶名 -p 數據庫名 > 導出正冊州的文件名 ,導姿滾出一個表就是 mysqldump -u 用戶名 -p 數據庫名 表名> 導舉蔽出的文件名phpmyadmin這個不做介紹,很簡單,RDS有相關的導出選項
以mysql為列:
規劃容災備份時,有兩個參考依據,1:恢復點目標(PRO),2:恢復時間目標(RTO)。他們定義了可以容忍丟失多少數據,以及恢復數據需要多少時間。而且一定要走出一個誤區,復制就是備份,只有備份才能滿足滑中滑備份的要求。
個人認為備份方案類型如下:
1:在線備份或者離線備份,通常關閉mysql做離線備份是最簡單最安全的,服務器不提供應用訪問服務,可以更快完成備份,但是,這樣會導致服務中斷,同時,重啟mysql也需要一定的時間成本,對于已經上線的,基本不可取。在線備份的最大一個問題是,mysql可能鎖住大量的表,除非鎖被釋放,否則會有大量的io請求被阻塞。
綜上所述,我們在規劃備份的時候需要考慮一下幾點:
a:鎖時間。
b:備份時間。
c:備份負載對服務器的影響有多大。
d:恢復備份時間需要多久。
2:邏輯備份還是物理備份。
(1):邏輯備份有以下優點:
a:邏輯備份文件恢復非常簡單。只需要使用mysqlimport即可。
b:在我們只想查看數據,不想恢復的時候可以使用grep或者sed命令查看。
c:邏輯備份與存儲引擎沒有關系,我們可以跨存儲引擎恢復數據,比如:從InnoDB表中備份,用很小的工作量就可以把數據恢復到MyISAM中。
邏輯備份也會有以下缺點:
a:必須有數據庫服務器完成備份工作,增加服務器工作負荷。
b:邏輯備份文件某些場景比數據庫本身文件還大。
c:無法保證導入導出的數據是一樣的,比如浮點型數據。
d:恢復的時候需要重建索引,速度會慢。
(2):物理備份有以下優點:
a:基于文件的物理備份,只需要培鄭復制操作到目標目錄即可。
b:恢復的時候只需要將文件copy到要恢復的目錄即可。InnoDB可能需要停止服務和其他一些操作。
c:物理備份中恢復速度塊,而且容易垮和操作和mysql數據庫版本。
物理備份信臘也會有以下缺點:
a:文件名大小寫敏感,浮點格式數據可能會遇到麻煩。
b:物理備份通常包含很多未使用的空間。
3:增量備份和差異備份。增量備份和差異備份只是局部備份,主要是思想就是不備份沒有改變的表,但是會減少服務器的開銷,備份時間等。
4:二進制日志備份。通常數據小,我們可以頻繁的備份,同時,基于時間點的恢復,二進制日志備份是一個很有效的手段。
5:文件快照,通過創建鏡像達到恢復的目的。
對于一個好的開發人員來說,有好的備份容災規劃和計劃是必不可少的。這樣可以提高我們在線的持續運行能力。更好的服務我們的用戶。我個人最喜歡的備份方式就是從文件快照中直接復制數據文件。
以上是個人的見解,希望對你有一定的幫助。謝謝。
本例以本蠢昌地服務器為 RHEL6/x64 ,備份文件存儲路徑為/home/mysql/為例。
云數據庫物理備份文件并上傳至目標服務器。備份文件獲取方法請參見備份數據。如果目標服務器可以訪問源實例,您也可以使用wget "url"備份文件。其中url為備份文件地橋鋒址。
切換路徑到備份文件所在路徑。
cd /home/mysql/
解壓備份文件。
其中,filename.tar.gz為備份文件名。
tar vizxf filename.tar.gz
檢查解壓后文件包含的數據庫是否正確。
顯示如下,其中db0dz1rv11f44yg2、mysql和test為云數據庫中存在的數據庫。
-rw-r--r-- 1 root root269 Aug 19 18:15 backup-my.cnf
drwxr-xr-x 2 root root 4096 Aug 21 10:31 db0dz1rv11f44yg2
-rw-rw---- 1 root root 209715200 Aug 7 10:44 ibdata1
drwxr-xr-x 2 root root 4096 Aug 21 10:31 mysql
drwxr-xr-x 2 root root 4096 Aug 21 10:31 test
-rw-r--r-- 1 root root10 Aug 19 18:15 xtrabackup_binary
-rw-r--r-- 1 root root23 Aug 19 18:15 xtrabackup_binlog_info
-rw-r--r-- 1 root root77 Aug 19 18:15 xtrabackup_checkpoints
-rw-r--r-- 1 root root 2560 Aug 19 18:15 xtrabackup_logfile
-rw-r--r-- 1 root root72 Aug 19 18:15 xtrabackup_slave_info
cd filename/
ll
恢復數帶消扒據文件。
顯示innobackupex: completed OK!,則數據恢復成功。
innobackupex --defaults-file=./backup-my.cnf --apply-log ./
修改配置文件。將解壓文件backup-my.cnf中的innodb_fast_checksum、innodb_page_size、innodb_log_block_size注釋掉,并且添加datadir=/home/mysql,如下所示。
# This MySQL options file was generated by innobackupex-1.5.1.
# The MySQL Server
[mysqld]
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=524288000
#innodb_fast_checksum=0
#innodb_page_size=16364
#innodb_log_block_size=512
datadir=/home/mysql/
重裝 MySQL 庫,取得數據庫的 root 權限。
顯示如下,則 mysql 庫重裝成功。
Installing MySQL system table...
OK
Filling help table...
OK
rm -rf mysql
mysql_install_db --user=mysql --datadir=/home/mysql/
修改文件屬主。
chown -R mysql:mysql /home/mysql/
啟動 mysqld 進程。
mysqld_safe --defaults-file=/home/mysql/backup-my.cnf &
使用客戶端數據庫。
mysql –u root –p
驗證數據庫是否完整。
顯示入選,則數據庫恢復成功。
+--------------------+
| Database|
+--------------------+
| information_schema |
| db0dz1rv11f44yg2|
| mysql |
| performance_schema |
| test|
+--------------------+
show databases;