防刪庫實用指南 | 只需一步,快速召回被誤刪的表
作者
黃忠,阿里雲資料庫技術專家
資料庫的一些非常不錯的企業級功能都是“養兵千日,用兵一時”,比如Oracle 10g中的回收站(Recycle Bin)功能,可以在特殊情況下發揮特種兵的功能,比如當你刪除一個表空間、一個使用者(Schema)時,可能會刪除很多的表,包括你不想刪除的一些表。
這種例子還是很多的,早些年很多的DBA使用圖形工具來訪問資料庫,所連線的使用者許可權又比較高,當查詢大量資料引起圖形工具短暫失去響應時,很容易多打幾下鍵盤或者多點幾下滑鼠,等到圖形工具響應過來,發現些表或某些使用者已經不見了。
前面講的是無心之過,還可以看到一些有心的惡意操作,比如因員工和公司的關係不夠友善引起的破壞性操作。這時就可以檢查一下Oracle資料庫回收站中是否還有被刪除的表。
AliSQL是阿里雲RDS MySQL團隊精心打造的一個分支,在效能、功能、穩定性上都有極大的提升和突破。在2019年12月份釋出的版本中也帶了Recycle Bin功能,只需要設定一個引數就可以開啟:
mysql> set global recycle_bin=on;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'recycle_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recycle_bin | ON |
+---------------+-------+
1 row in set (0.00 sec)
mysql> use test;
Database changed
mysql> create table t_recycle_bin_demo (col1 int not null);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t_recycle_bin_demo values (1),(2);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from t_recycle_bin_demo;
+------+
| col1 |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)
mysql> drop table t_recycle_bin_demo;
Query OK, 0 rows affected (0.01 sec)
mysql> call dbms_recycle.show_tables();
+-----------------+---------------+---------------+--------------------+---------------------+---------------------+
| SCHEMA | TABLE | ORIGIN_SCHEMA | ORIGIN_TABLE | RECYCLED_TIME | PURGE_TIME |
+-----------------+---------------+---------------+--------------------+---------------------+---------------------+
| __recycle_bin__ | __innodb_1073 | test | t_recycle_bin_demo | 2020-02-27 06:48:24 | 2020-03-05 06:48:24 |
+-----------------+---------------+---------------+--------------------+---------------------+---------------------+
1 row in set (0.00 sec)
mysql> select * from `__recycle_bin__`.`__innodb_1073`;
+------+
| col1 |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)
mysql> select * from `__recycle_bin__`.`__innodb_1073`;
ERROR 1142 (42000): SELECT command denied to user 'test'@'localhost' for table '__innodb_1073'
mysql> call dbms_recycle.purge_table('__innodb_1073');
ERROR 1142 (42000): DROP command denied to user 'test'@'localhost' for table '__innodb_1073'
可以看到透過AliSQL的回收站功能,以及精心規劃的許可權管理機制,可以有效地處理表被意外或惡意刪除的問題,確保你的資料安全。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940574/viewspace-2678884/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle快速找回被刪除的表Oracle
- 被誤刪的檔案快速恢復方法
- 被誤刪的檔案正確處理方法,快速找回誤刪的檔案
- 聊聊PG資料庫的防誤刪除問題資料庫
- 利用延時備庫找回被誤刪的資料
- 寶塔漏洞防禦 防止資料庫被刪的方案資料庫
- 我被刪庫了
- MySQL資料庫表誤刪除恢復(一)MySql資料庫
- Incaseformat病毒狂刪資料,僅用一步快速恢復!ORM
- 寫了Bug,誤執行 rm -fr /*,我刪刪刪刪庫了,要跑路嗎?
- 資料庫被刪之反思資料庫
- Mac上的照片被誤刪除怎麼辦?Mac
- mac誤刪檔案怎樣快速找回?Mac
- 5、刪除被其它表關聯的主表
- MYSQL下如何安全的快速刪除大表MySql
- Mongodb資料庫誤刪後的恢復MongoDB資料庫
- win10中mdf檔案被誤刪如何恢復_win10系統mdf檔案被誤刪的恢復方法Win10
- 【北亞資料恢復】誤刪除oracle表和誤刪除oracle表資料的資料恢復方法資料恢復Oracle
- 伺服器被黑了,被刪庫勒索伺服器
- Ant Design 原始碼倉庫被刪除原始碼
- iptables配置資訊被誤刪瞭解決方法
- 【Mybatis-Plus】防全表更新與刪除外掛MyBatis
- Mac中Chrome書籤被誤刪後如何恢復MacChrome
- Chrome書籤被誤刪後如何一鍵恢復Chrome
- mysql資料庫誤刪除操作說明MySql資料庫
- 如何刪除資料庫下的所有表(mysql)資料庫MySql
- 恢復ext4檔案系統被誤刪的檔案
- SQLite 刪表後刪物理檔案SQLite
- C# .netcore NPOI庫 實現報表的列自適應刪減C#NetCore
- Android 中關於增刪改查資料庫表實踐Android資料庫
- 【資料庫資料恢復】HP-UX系統ORACLE資料庫被誤刪除的資料恢復資料庫資料恢復UXOracle
- MySQL在刪除表時I/O錯誤原因分析MySql
- word內容被刪除怎麼辦?word內容被刪除了的恢復方法
- 記一次資料庫刪表事件資料庫事件
- 【C/C++】資料庫刪除大表C++資料庫
- 電腦檔案被佔用無法刪除?Win10系統檔案被佔用無法刪除的解決方法Win10
- Git恢復被刪除的分支Git
- LINUX下資料被誤刪除、LINUX下資料被誤格式化後資料恢復Linux資料恢復