日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

防删库实用指南 | 只需一步,快速召回被误删的表

發布時間:2024/8/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 防删库实用指南 | 只需一步,快速召回被误删的表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫的一些非常不錯的企業級功能都是“養兵千日,用兵一時”,比如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)

假設這是一張很重要的表,并且被意外Drop掉了,讓我們來看一下如何找回這張表的數據。如下所示:
*請左右滑動閱覽

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)

可以看到,AliSQL在開啟回收站功能的情況下,被刪除的表被移到了“__recycle_bin__”數據庫下面,可以通過Select語句直接訪問讀出被刪除的數據以進行恢復,這樣就找回了你的重要數據。和Oracle不同的地方是,“__recycle_bin__”數據庫訪問需要明確的授權操作,這樣可以防止表的所有者(可能是惡意者)同步清理回收站中的表。比如我用一般用戶登進去操作,就會報權限錯誤,如下所示:
*請左右滑動閱覽

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的回收站功能,以及精心規劃的權限管理機制,可以有效地處理表被意外或惡意刪除的問題,確保你的數據安全。

點這里了解Recycle Bin功能詳情


?

上阿里云采購季
云數據庫分會場一站解決
掃描二維碼直達


原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的防删库实用指南 | 只需一步,快速召回被误删的表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。