本文目錄一覽:
- 1、MySQL全備份如何只恢復一個庫或者一個表
- 2、如何使用MYSQL資料庫進行備份數據恢復
- 3、MySQL的備份與還原,非常規備份,全量備份,增量備份
- 4、如何修復損壞的MySQL數據表
- 5、mysql資料庫怎麼恢復單個表啊?
- 6、mysql資料庫恢復某一張表的命令,急啊,
MySQL全備份如何只恢復一個庫或者一個表
你好!
這個問題不是MYSQL資料庫方面的問題,而是如何從一個文本文件中取出需要的部分內容的問題。 從資料庫角度來說,沒有什麼好辦法,可以使用操作系統中的文本編輯處理工具來實現。例如,如果不是太大,幾百M可以用editplus,ultraedit等編輯工具打開找你需要sql拷貝出來導入。
如果是linux/unix,可參考如下方法:
1.使用 awk:
可以先到原資料庫中使用 ‘show tables;’ 查看資料庫表的列表,注意,此列表已經按照字母排序,例如:
table1
table2
table3
然後使用awk 來過濾sql語句,假設你要恢復 table2 表,可以使用下面的語句:
awk 『/^– Table structure for table .table2./,/^– Table structure for table .table3./{print}』 mydumpfile.sql /tmp/recovered_table.sql
2.使用sed:
與上面類似,假設你要恢復 table2 表,可以使用下面的語句:
cat mydumpfile.sql | sed -n -e ‘/Table structure for table .test1./,/Table structure for table .test2./p’ /tmp/extracted_table.sql
如何使用MYSQL資料庫進行備份數據恢復
恢復整個資料庫
首先,如果要恢復的資料庫是含有授權表的mysql資料庫,將需要使用–skip-grant-tables選項運行伺服器。否則,伺服器將抱怨無法找到授權表。在恢復表之後,執行mysqladmin flush-privileges 來告訴伺服器載入授權表,並用它們啟動。
將原資料庫目錄的內容拷貝到其他的地方。例如,您可能會在稍後用它們進行崩潰表的事後分析檢查(post-mortem examination)。
用最新的備份文件重新載入資料庫。如果您打算使用由mysqldump 載入的文件,則需要將它們作為mysql的輸入。如果打算使用從資料庫中直接拷貝的文件(如,用tar 或c p),則將它們直接拷貝回到該資料庫目錄中。但是,在這種情況下,應該在拷貝這些文件之前關閉伺服器,然後再重新啟動它。
用更新日誌重做在進行備份後又修改了資料庫表的查詢。對於所有可用的更新日誌,可使用它作為mysql的輸入。指定–one-database 選項,使mysql只對想要恢復的資料庫執行查詢。如果您知道需要使用所有的更新日誌文件,可在包含日誌的目錄中使用下列命令:
% ls-t-r-l update.(0-9)* | xargs cat | mysql–one-database db_name
ls 命令產生更新日誌文件的單列列表,更新日誌文件根據伺服器生成的順序進行排序(要知道,如果您修改了其中的任何文件,排序的順序都將改變,這將導致更新日誌按錯誤的順序使用)。
您很可能必須使用某些更新日誌。例如,如果自備份以來所產生的日誌命名為update.392、pdate.393 等等,可以重新運行它們中的命令:
% mysql–one-database db_name updata.392
% mysql–one-database db_name updata.393
…
如果正在運行恢復並打算使用更新日誌恢復由於失策的DROP DATA BASE、DROPTABLE或DELETE 語句而丟失的信息,應確保先從更新日誌中刪除這些語句。
恢復單個的表
恢復單個表是很困難的。如果有通過mysqldump 生成的備份文件並且它恰好不包含您想要的表數據,則需要抽取相關的行並用它們作為mysql的輸入,這部分較容易。困難的是抽取應用於該表的更新日誌的片段。您會發現: mysql_find_rows 實用程序對這方面有幫助,它可以從更新日誌中抽取多行查詢。
另一種可能性是用另一個伺服器恢復整個資料庫,然後將所要的該表的文件拷貝到原始資料庫中。這實際很容易!在將文件拷貝回資料庫目錄時,應確保原始資料庫的伺服器關閉。
MySQL的備份與還原,非常規備份,全量備份,增量備份
1:官方百萬級別的測試資料庫:
官方測試資料庫github網址:
下載到目錄,解壓即可,運行命令:
2:自己創建簡單測試資料庫:
快速隨機生成測試語言的網站:
選擇sql和想生成的欄位,點擊生成Generate!生成即可。
在MySQL輸入生成的語句即可。
3:測試備份還原時用到的命令
刪庫跑路測試(先備份好)
還原後查詢庫的表數據是否完整。
採用複製整個數據存放目錄
1:查看資料庫數據存放位置
有兩種方法:
1):在資料庫中用命令 show variables like ‘datadir’; 查看
2):在配置文件中查看,配置了 datadir 目錄的可查看。沒有配置的默認為 /var/lib/mysql/ 位置
Linux中查看配置文件
2:複製目錄或者目錄下某個資料庫名
3:還原時直接複製文件夾到資料庫目錄即可
mysqldump又可叫做全量備份。
參數 –databases 同 -B ,單獨一個庫,也可省略。
1、備份命令mysqldump格式
格式:mysqldump -h主機名 -P埠 -u用戶名 -p密碼 database 資料庫名 文件名.sql
備份testDatabase資料庫
2、備份MySQL資料庫為帶刪除表的格式
備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
3、直接將MySQL資料庫壓縮備份
備份並壓縮
4、備份MySQL資料庫某個(些)表
備份testDatabase中的myTable表,不需要用參數 –databases 或者 -B
5、同時備份多個MySQL資料庫
同時備份testDatabase和 employees兩個庫
6、備份伺服器上所有資料庫
參數 –all-databases 同 -A
7、還原MySQL資料庫的命令
1) 不指定數據名還原,默認生成原資料庫名稱,還原所有資料庫。
2) 指定數據名還原,還原指定單個資料庫,需在資料庫種預先創建一個testDatabase名稱。
3) 還原壓縮的MySQL資料庫
4) 進入資料庫用source導入
增量備份是針對於資料庫的bin-log日誌進行備份的,增量備份是在全量的基礎上進行操作的。增量備份主要是靠mysql記錄的bin-log日誌。
1:查看是否開啟bin-log日誌
進入mysql輸入命令可查看。
顯示如下為開啟狀態,日誌文件在/var/lib/mysql/以binlog.00001的格式保存。
如未開啟,需要在配置文件種配置
2:查看目前使用的bin-log日誌文件
進入mysql查看命令。
顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。
查看當前testDatabase的表myTable數據如下,
3:刷新日誌,使用新的日誌文件(備份)
在命令端執行命令
日誌文件從 binlog.000022 變為 binlog.000023
這時相當與已經備份成功,備份文件即為上次的binlog.000022日誌文件。
4:刪除數量,從日誌還原數據
1) 刪除ABC行
查詢以及沒有ABC行列。
2) 恢複數據ABC行
退出mysql,在命令端用mysqlbinlog命令恢復到binlog.000022日誌狀態。
進入資料庫再次查看數據,ABC已經恢復。
增量備份完成。
如何修復損壞的MySQL數據表
工具/材料:Management Studio。
1、首先在桌面上,點擊「Management Studio」圖標。
2、之後在窗口上,左側選中要修復的數據表「rss」。
3、接著在窗口上,點擊工具欄里「新建查詢」圖標。
4、接著在窗口上,輸入修復損壞的MySQL數據表的sql語句「repair table rss;」。
4、然後在窗口上,點擊工具欄里「執行」圖標。
5、最後在窗口上,顯示修復損壞的MySQL數據表成功。
mysql資料庫怎麼恢復單個表啊?
Navicat Premium 上 可以備份單張表,備份出來的sql文件是 一些列的 insert into 語句。然後 你可以通過 date source(可能是這樣的,你百度下吧,很久之前用的了 忘記了) 這個命令在 mysql 命令 裡面 將單張表恢復。整個 資料庫備份也差不多。
記得採納啊
mysql資料庫恢復某一張表的命令,急啊,
如果是整個資料庫恢復可以用 mysql -uroot -p123 user /17rumen_user_2009_5_29.sql
但是你要恢復某一張表
1、新建一個資料庫 tmp
2、把 /17rumen_user_2009_5_29.sql 用上面的命令導入 到該庫
mysql -uroot -p123 tmp /17rumen_user_2009_5_29.sql
3、mysqldump -uroot -p123 -t tmp –table 表名 /tmp.sql
4、再把 /tmp.sql 導入你現在表
mysql -uroot -p123 user /tmp.sql
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304707.html