誤刪mysql資料庫
1.如果你有歸檔日誌的話,你可以先將數據恢復到上一個備份點,然後使用recover恢復到做命令前的時間點上。呵呵,還是很麻煩的。
2.mysql中的表在正常情況下執行delete 指定刪除的記錄實際上只是在索引文件中做了刪除標記,同時也將數據文件中對記錄的頭幾個位元組改寫, 但這幾個位元組具體的與入內容不清楚.
通過研究數據文件, 會發現幾種數據類型保存的格式.
varchar: 在該類型數據開始的位置有一個位元組來指出後面多少個位元組是該欄位的內容, 但是有一個例外就是如果後面的內容與varchar欄位指定的長度完全相等時,就沒有開頭的這個位元組了.
B. mysql誤刪資料庫
mysql
-h
localhost
-u
root
-p
資料庫名稱<資料庫備份文件.sql
如果已經加mysql中bin加入環境變數,在dos中直接執行以上命令就行,否在必須在mysql根目錄/bin路徑下執行。
localhost表示本地,如果mysql不是在本地電腦安裝將localhost改為對應的ip地址
執行命令後會要求數據密碼。
C. mysql資料庫誤刪除後怎麼辦
停止mysql
# /etc/init.d/mysqld stop
安全模式進入mysql
# /usr/sbin//mysqld_safe --skip-grant-tables &
完成以後就可以不用密碼進入MySQL了
# mysql -u root
按下列步驟建立 root 用戶:
> insert into mysql.user (host, user, password) values ('localhost', 'root', password('密碼'));
> flush privileges;
>grant all on *.* to 'root'@'localhost';
D. 不小心刪掉了mysql資料庫怎麼辦
mysql資料庫不小心還原了需要按照以下步驟恢復。
1、先確認mysql有沒有啟用bin日誌 ,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin, 可以 自定義一個目錄和前綴名,比如/data/log/mylog這樣。
2、然後在資料庫文件存放的data目錄就能看到mysql-bin.00000x這樣的文件,這就是二進制日誌了,可以導出成txt格式的,裡面其實就是對資料庫的各種操作sql語句。
3、導出txt文件:
e:\wamp\bin\mysql\mysql5.6.12\bin>mysqlbinlog
--database=testdatabase
e:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000312
>
c:\\test1.txt
這是windows下的導出,linux也是類似的。
database=資料庫名
從最早的日誌還始還原
linux下可以很方便的 mysql-bin.000*
可以加參數開始時間和結束時間,就是你執行那條sql語句的時間
start-datetime="2014-12-04
11:25:56"
--stop-datetime="2014-12-04
13:23:50"
4、恢復數據:
e:\wamp\bin\mysql\mysql5.6.12\bin>mysqlbinlog
--database=yundongchao
e:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000179
|
mysql
-u
root
-p
------------------------------------------------
E. MySQL誤刪除數據,如何恢復
資料庫誤刪某表恢復方法,這個前提是針對每天有備份的資料庫 ,如果沒有備份 恢復起來會非常非常麻煩,所以奉勸大家還是要備份!備份!備份!
/*恢復後查看數據*/MariaDB [drop_test]> select * from python_test;+----+--------------+------------+| id | name | class_time |+----+--------------+------------+| 1 | 字典 | 3 || 2 | 列表 | 2 || 3 | 函數 | 5 || 4 | 裝飾器 | 2 || 5 | 迭代器 | 2 || 6 | 生成器 | 2 || 7 | 類的方法 | 5 |+----+--------------+------------+7 rows in set (0.00 sec)
F. mysql資料庫刪除了怎麼恢復
常見的情況:
1、如完全丟失資料庫文件,用一般數據恢復方式不能恢復2、表被刪除,甚至被重寫,錶行被刪除3、索引錯誤,或者IAM斷裂4、資料庫大面損壞,可以指定任意表或者欄位提取數據5、系統表損壞甚至完全損壞,可以提取指定數據
Oracle資料庫恢復
1、undo,systen表空間損壞的恢復2、誤delete數據的恢復,誤刪除表空間drop,truncate表的恢復3、各種ora-錯誤的恢
復4、DMP文件不能導入資料庫以及LOB數據恢復等情況5、oracle資料庫中數據文件出現現壞塊情況下的恢復6、oracle資料庫無資料庫文件但
有有日誌的情況下的恢復7、能夠在系統表和空間文件丟失,變成0位元組下完整的恢復數據8、只要沒有覆蓋表空間件,都有信心恢復數據。無論你是什麼系統
(Windows,UNIX)等,無論什麼存儲設備(硬碟,磁碟陣列)
大
環乙木數據恢復是一家專門做手機數據恢復業務的公司,擁有先進的數據恢復認證設備,使用的幾乎全部是自有技術,對於數據恢復,採用最先進的數據分析和處理
方法,對手機數據丟失的數據恢復成功率在95%以上。如果您已經多方咨詢,別的手機數據恢復公司都告訴您,數據恢復無法實現。我們可以很自信地告訴您,這塊工作是我們的強項。我們可以手機、硬碟、伺服器、U盤、資料庫數據恢復等所有手機數據,且我
們可以為大家提供大量的成功案例以供參考,讓你對我們更具信心。
G. 把mysql資料庫刪了,請問可以恢復嗎
1.如果有備份,恢復備份數據就可以。
2.如果在企業管理器里刪除了資料庫,如果有備份,恢復備份數據就可以。
3. 如果你是在程序里卸載sql程序,數據就在sql安裝目錄里,附加資料庫就可以了。
4.如果備份數據都沒有,可以找個硬碟數據恢復公司。
H. Mysql Innodb資料庫誤刪除了文件,怎麼恢復
經常性備份,如果binlog在的話,試試看……
- 恢復策略
前面說到未提交的事務和回滾了的事務也會記錄Redo Log,因此在進行恢復時,這些事務要進行特殊的的處理.有2中不同的恢復策略:
A. 進行恢復時,只重做已經提交了的事務。
B. 進行恢復時,重做所有事務包括未提交的事務和回滾了的事務。然後通過Undo Log回滾那些未提交的事務。
- InnoDB存儲引擎的恢復機制
MySQL資料庫InnoDB存儲引擎使用了B策略, InnoDB存儲引擎中的恢復機制有幾個特點:
A. 在重做Redo Log時,並不關心事務性。 恢復時,沒有BEGIN,也沒有COMMIT,ROLLBACK的行為。也不關心每個日誌是哪個事務的。盡管事務ID等事務相關的內容會記入Redo Log,這些內容只是被當作要操作的數據的一部分。
B. 使用B策略就必須要將Undo Log持久化,而且必須要在寫Redo Log之前將對應的Undo Log寫入磁碟。Undo和Redo Log的這種關聯,使得持久化變得復雜起來。為了降低復雜度,InnoDB將Undo Log看作數據,因此記錄Undo Log的操作也會記錄到redo log中。這樣undo log就可以像數據一樣緩存起來,而不用再redo log之前寫入磁碟了。
包含Undo Log操作的Redo Log,看起來是這樣的:
記錄1: <trx1, Undo log insert <undo_insert …>>
記錄2: <trx1, insert …>
記錄3: <trx2, Undo log insert <undo_update …>>
記錄4: <trx2, update …>
記錄5: <trx3, Undo log insert <undo_delete …>>
記錄6: <trx3, delete …>
C. 到這里,還有一個問題沒有弄清楚。既然Redo沒有事務性,那豈不是會重新執行被回滾了的事務?確實是這樣。同時Innodb也會將事務回滾時的操作也記錄到redo log中。回滾操作本質上也是對數據進行修改,因此回滾時對數據的操作也會記錄到Redo Log中。
一個回滾了的事務的Redo Log,看起來是這樣的:
記錄1: <trx1, Undo log insert <undo_insert …>>
記錄2: <trx1, insert A…>
記錄3: <trx1, Undo log insert <undo_update …>>
記錄4: <trx1, update B…>
記錄5: <trx1, Undo log insert <undo_delete …>>
記錄6: <trx1, delete C…>
記錄7: <trx1, insert C>
記錄8: <trx1, update B to old value>
記錄9: <trx1, delete A>
一個被回滾了的事務在恢復時的操作就是先redo再undo,因此不會破壞數據的一致性.
- InnoDB存儲引擎中相關的函數
Redo: recv_recovery_from_checkpoint_start()
Undo: recv_recovery_rollback_active()
Undo Log的Redo Log: trx_undof_page_add_undo_rec_log()
I. mysql整個資料庫被刪除了怎麼恢復
1 找個別的機器安裝個同版本的mysql或從已安裝同版本的其他機器上(非同版本的也可以試下):
拷貝 mysql/data/mysql 目錄到你的mysql/data/ 下吧
2 試著啟動mysql服務,如果能啟動了,理論上應該丟失的只有用戶、授權等一些系統信息,不影響你的使用的數據;
如果不能啟動,看錯誤日誌,爭取啟動了。
3 趕緊把數據備份一份出來,重新把所有庫(只是你後來創建的業務相關的庫,不包括mysql庫)都刪了,重新導入一遍。理論上不這樣也可以,但只是非生產重要的環境下。
4 重新做用戶授權。