电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Oracle 10G中的回收站(Recycle Bin)

瀏覽:14日期:2023-11-23 13:01:32
在Oracle 10g數(shù)據(jù)庫(kù)中,引入了一個(gè)回收站(Recycle Bin)的數(shù)據(jù)庫(kù)對(duì)象。 回收站,從原理上來(lái)說(shuō)就是一個(gè)數(shù)據(jù)字典表,放置用戶(hù)Drop掉的數(shù)據(jù)庫(kù)對(duì)象信息。用戶(hù)進(jìn)行Drop操作的對(duì)象并沒(méi)有被數(shù)據(jù)庫(kù)刪除,仍然會(huì)占用空間。除非是由于用戶(hù)手工進(jìn)行Purge或者因?yàn)榇鎯?chǔ)空間不夠而被數(shù)據(jù)庫(kù)清掉。數(shù)據(jù)庫(kù)有了這樣的功能,能夠減少很多不必要的麻煩。經(jīng)常看到開(kāi)發(fā)人員誤把表刪除,急急忙忙找DBA 來(lái)想辦法的情況。相信隨著10G的大范圍應(yīng)用,這種情形應(yīng)該比較少見(jiàn)了,我們可以充分利用10g的閃回(FLASHBACK,閃回,回閃?)功能來(lái)避免大量的人工誤操作。 DBA治理上的相關(guān)信息可以從USER_recyclebin(DBA_recyclebin)中獲取。 為了便于測(cè)試,我們創(chuàng)建了一個(gè)表空間Foo,大小為1M,創(chuàng)建了一個(gè)用戶(hù)Foo,默認(rèn)的表空間為Foo. SQL> CONNECT foo/foo; Connected. SQL> SELECT table_name FROM user_tables; no rows selected SQL> SQL> DESC user_recyclebin Name Null? Type ----------------------------------------- -------- ------------------- OBJECT_NAME NOT NULL VARCHAR2(30) ORIGINAL_NAME VARCHAR2(32) OPERATION VARCHAR2(9) TYPE VARCHAR2(25) TS_NAME VARCHAR2(30) CREATETIME VARCHAR2(19) DROPTIME VARCHAR2(19) DROPSCN NUMBER PARTITION_NAME VARCHAR2(32) CAN_UNDROP VARCHAR2(3) CAN_PURGE VARCHAR2(3) RELATED NOT NULL NUMBER BASE_OBJECT NOT NULL NUMBER PURGE_OBJECT NOT NULL NUMBER SPACE NUMBER SQL> user_recyclebin大多是自解釋的,相對(duì)比較輕易理解. SQL> SELECT object_name FROM user_recyclebin; no rows selected SQL> SQL> SELECT object_name FROM user_recyclebin; no rows selected SQL> CREATE TABLE foo AS SELECT * FROM DUAL; Table created. SQL> SELECT table_name FROM user_tables; TABLE_NAME ---------------------------------------------- FOO SQL> DROP TABLE foo; Table dropped. SQL> SELECT table_name FROM user_tables; no rows selected SQL> SHOW recyclebin ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- FOO BIN$V3f/oYUITrCEF2cotS5JaA==$0 TABLE 2004-10-30:14:37:39 SQL> SQL*Plus命令SHOW recyclebin等價(jià)于這條SQL: SQL> SELECT original_name, object_name, TYPE, droptime FROM user_recyclebin; ORIGINAL_NAME OBJECT_NAME TYPE DROPTIME --------------- ------------------------------ ---------- -------------------- FOO BIN$V3f/oYUITrCEF2cotS5JaA==$0 TABLE 2004-10-30:14:37:39 SQL> SQL> DESC 'BIN$V3f/oYUITrCEF2cotS5JaA==$0' Name Null? Type ----------------------------------------- -------- ---------------- DUMMY VARCHAR2(1) SQL> 當(dāng)一個(gè)表被刪除并移動(dòng)到'回收站'中,它的名字要進(jìn)行一些轉(zhuǎn)換。這樣的目的顯而易見(jiàn)是為了避免同類(lèi)對(duì)象名稱(chēng)的重復(fù)。(這一點(diǎn)和Windows操作系統(tǒng)的回收站不同,Windows中的回收站經(jīng)過(guò)了非凡的處理,操作系統(tǒng)文件可以重名。) 轉(zhuǎn)換后的名字格式如下: BIN$unique_id$version 其中BIN代表RecycleBin unique_id是數(shù)據(jù)庫(kù)中該對(duì)象的唯一標(biāo)志,26個(gè)字符長(zhǎng)度 version表示該對(duì)象的版本號(hào) 注:在10g beta 版本中,名字格式如下: RB$$objn$object_type$version 其中的RB,代表Recycle Bin. objn為表的目錄對(duì)象號(hào). object_type表示對(duì)象類(lèi)型. version表示版本號(hào). 由數(shù)據(jù)庫(kù)指定。 下面我們驗(yàn)證一下回收站里數(shù)據(jù)庫(kù)對(duì)象名字的唯一性: SQL> CREATE TABLE foo AS SELECT * FROM DUAL; Table created. SQL> SELECT table_name FROM user_tables; TABLE_NAME ------------------------------------------------------------ FOO SQL> DROP TABLE foo; Table dropped. SQL> SHOW recyclebin ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- FOO BIN$VL+ZsqVlQF6R2nYnwAqtvw==$0 TABLE 2004-10-30:15:01:42 FOO BIN$V3f/oYUITrCEF2cotS5JaA==$0 TABLE 2004-10-30:14:37:39 SQL> 能看出來(lái),雖然源表名字相同,在回收站里的對(duì)象名字是不同的。 針對(duì)Recycle Bin對(duì)象的操作 已經(jīng)放到回收站里的表是不能用drop 命令刪除的(注重對(duì)象名字上的雙引號(hào)): SQL> DROP table 'BIN$V3f/oYUITrCEF2cotS5JaA==$0' 2 / DROP table 'BIN$V3f/oYUITrCEF2cotS5JaA==$0' * ERROR at line 1: ORA-38301: can not perform DDL/DML over objects in Recycle Bin SQL> 假如要清掉該對(duì)象,使用purge命令: SQL> PURGE table 'BIN$V3f/oYUITrCEF2cotS5JaA==$0' 2 / Table purged. SQL> SELECT object_name, original_name FROM user_recyclebin; OBJECT_NAME ORIGINAL_NAME ------------------------------ --------------- BIN$VL+ZsqVlQF6R2nYnwAqtvw==$0 FOO SQL> 對(duì)象已經(jīng)清掉。假如直接清空所有的Recycle Bin中的對(duì)象: SQL> PURGE RECYCLEBIN; Recyclebin purged. SQL> SELECT object_name, original_name FROM user_recyclebin; no rows selected SQL> 恢復(fù)表,用回閃表的功能: SQL> FLASHBACK TABLE foo TO BEFORE DROP; Flashback complete. SQL>SELECT table_name FROM user_tables; TABLE_NAME ------------------------------------------------------------ FOO SQL> 注:在10g Beta版本中,使用Undrop命令來(lái)做到這一點(diǎn). 有的時(shí)候,可能同一個(gè)名字的表被刪除到回收站中: SQL> DROP TABLE FOO; Table dropped. SQL> SHOW RECYCLEBIN ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03 SQL> CREATE TABLE foo AS SELECT * FROM DUAL; Table created. SQL> DROP TABLE foo; Table dropped. SQL> SHOW RECYCLEBIN ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- FOO BIN$J63QaUaKTmC1glat+imjeg==$0 TABLE 2004-10-30:15:18:50 FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03 SQL> FLASHBACK TABLE FOO TO BEFORE DROP; Flashback complete. SQL> SHOW RECYCLEBIN ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03 SQL> 默認(rèn)的恢復(fù)是第一個(gè)被刪除的FOO表。假如要恢復(fù)指定的表,可以在FLASHBACK TABLE 后面加上指定的RECYCLEBIN 參數(shù)指定其他的名字: SQL> FLASHBACK TABLE 'BIN$lfTbzOjISXaw8u0BIO7pNA==$0' TO BEFORE DROP; FLASHBACK TABLE 'BIN$lfTbzOjISXaw8u0BIO7pNA==$0' TO BEFORE DROP * ERROR at line 1: ORA-38312: original name is used by an existing object SQL> FLASHBACK TABLE 'BIN$lfTbzOjISXaw8u0BIO7pNA==$0' TO BEFORE DROP 2 RENAME TO foo2; Flashback complete. SQL>
主站蜘蛛池模板: 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 影视模板素材_原创专业影视实拍视频素材-8k像素素材网 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 首页|成都尚玖保洁_家政保洁_开荒保洁_成都保洁 | 皮带机_移动皮带机_大倾角皮带机_皮带机厂家 - 新乡市国盛机械设备有限公司 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 急救箱-应急箱-急救包厂家-北京红立方医疗设备有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 法兰螺母 - 不锈钢螺母制造厂家 - 万千紧固件--螺母街 | 丹佛斯变频器-Danfoss战略代理经销商-上海津信变频器有限公司 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | 消防泵-XBD单级卧式/立式消防泵-上海塑泉泵阀(集团)有限公司 | 质构仪_鱼糜弹性仪-上海腾拔仪器科技有限公司 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 执业药师报名时间,报考条件,考试时间-首页入口 | 定制/定做衬衫厂家/公司-衬衫订做/订制价格/费用-北京圣达信 | 淘剧影院_海量最新电视剧,免费高清电影随心观看 | 蒸压釜_蒸养釜_蒸压釜厂家-山东鑫泰鑫智能装备有限公司 | BAUER减速机|ROSSI-MERSEN熔断器-APTECH调压阀-上海爱泽工业设备有限公司 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 健康管理师报考条件,考试时间,报名入口—首页 | 电磁辐射仪-电磁辐射检测仪-pm2.5检测仪-多功能射线检测仪-上海何亦仪器仪表有限公司 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 智能终端_RTU_dcm_北斗星空自动化科技| 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 |