防刪庫實(shí)用指南|只需一步,快速召回被誤刪的表

作者

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十年品質(zhì),值得信賴!

黃忠,阿里云數(shù)據(jù)庫技術(shù)專家

數(shù)據(jù)庫的一些非常不錯(cuò)的企業(yè)級(jí)功能都是“養(yǎng)兵千日,用兵一時(shí)”,比如Oracle 10g中的回收站(Recycle Bin)功能,可以在特殊情況下發(fā)揮特種兵的功能,比如當(dāng)你刪除一個(gè)表空間、一個(gè)用戶(Schema)時(shí),可能會(huì)刪除很多的表,包括你不想刪除的一些表。

這種例子還是很多的,早些年很多的DBA使用圖形工具來訪問數(shù)據(jù)庫,所連接的用戶權(quán)限又比較高,當(dāng)查詢大量數(shù)據(jù)引起圖形工具短暫失去響應(yīng)時(shí),很容易多打幾下鍵盤或者多點(diǎn)幾下鼠標(biāo),等到圖形工具響應(yīng)過來,發(fā)現(xiàn)些表或某些用戶已經(jīng)不見了。

前面講的是無心之過,還可以看到一些有心的惡意操作,比如因員工和公司的關(guān)系不夠友善引起的破壞性操作。這時(shí)就可以檢查一下Oracle數(shù)據(jù)庫回收站中是否還有被刪除的表。

AliSQL阿里云RDS MySQL團(tuán)隊(duì)精心打造的一個(gè)分支,在性能、功能、穩(wěn)定性上都有極大的提升和突破。在2019年12月份發(fā)布的版本中也帶了Recycle Bin功能,只需要設(shè)置一個(gè)參數(shù)就可以開啟:

*請左右滑動(dòng)閱覽
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)
接下來讓我們來創(chuàng)建一個(gè)表,插入一些數(shù)據(jù),進(jìn)行功能測試和驗(yàn)證。如下所示:
*請左右滑動(dòng)閱覽
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)
假設(shè)這是一張很重要的表,并且被意外Drop掉了,讓我們來看一下如何找回這張表的數(shù)據(jù)。如下所示:
*請左右滑動(dòng)閱覽
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__”數(shù)據(jù)庫下面,可以通過Select語句直接訪問讀出被刪除的數(shù)據(jù)以進(jìn)行恢復(fù),這樣就找回了你的重要數(shù)據(jù)。和Oracle不同的地方是,“__recycle_bin__”數(shù)據(jù)庫訪問需要明確的授權(quán)操作,這樣可以防止表的所有者(可能是惡意者)同步清理回收站中的表。比如我用一般用戶登進(jìn)去操作,就會(huì)報(bào)權(quán)限錯(cuò)誤,如下所示:
*請左右滑動(dòng)閱覽
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的回收站功能,以及精心規(guī)劃的權(quán)限管理機(jī)制,可以有效地處理表被意外或惡意刪除的問題,確保你的數(shù)據(jù)安全。


分享文章:防刪庫實(shí)用指南|只需一步,快速召回被誤刪的表
網(wǎng)站路徑:http://bm7419.com/article42/pcechc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)、建站公司、標(biāo)簽優(yōu)化、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司