HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    oracle恢復(fù)數(shù)據(jù)快照過舊(oracle誤刪除數(shù)據(jù)恢復(fù)快照過舊)

    發(fā)布時(shí)間:2023-04-10 16:56:13     稿源: 創(chuàng)意嶺    閱讀: 64        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于oracle恢復(fù)數(shù)據(jù)快照過舊的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    oracle恢復(fù)數(shù)據(jù)快照過舊(oracle誤刪除數(shù)據(jù)恢復(fù)快照過舊)

    一、重裝系統(tǒng)后,怎么恢復(fù)oracle數(shù)據(jù)庫?

    任何軟件都有可能在有意或無意的情況下被重新安裝,如Oracle重裝后數(shù)據(jù)庫怎么恢復(fù)呢?情況發(fā)生在你是無意的情況下!ORACLE數(shù)據(jù)庫恢復(fù)的方法我們經(jīng)常會(huì)用到,下面就為您介紹重裝系統(tǒng)后ORACLE數(shù)據(jù)庫恢復(fù)的方法,希望對(duì)您學(xué)習(xí)ORACLE數(shù)據(jù)庫恢復(fù)方面能有所幫助。x0dx0ax0dx0a我的電腦突然掛了,不得不重裝系統(tǒng),不過我的ORACLE裝在了D盤,所有的文件都還在,我相信一定能夠恢復(fù),直到搞定工作,我才開始整我的數(shù)據(jù)庫,花了兩天時(shí)間,終于恢復(fù)了,慶祝一下,同時(shí)總結(jié)一下,希望有遇到同樣問題的朋友能夠快速搞定此類問題x0dx0ax0dx0a第一種:x0dx0ax0dx0a首先,備份數(shù)據(jù)庫(X:\oracle\oradata)下的數(shù)據(jù)文件,重新命名即可(否則裝數(shù)據(jù)庫的時(shí)候會(huì)提示sid已存在)。重新安裝數(shù)據(jù)x0dx0a庫,當(dāng)然數(shù)據(jù)庫的名字就是你要恢復(fù)的名字。安裝完成后,打開控制面板,停止oracle的服務(wù)。把(X:\oracle\oradata)下新生成的文件x0dx0a改名,把原先目錄下的文件恢復(fù)名字。再重新啟動(dòng)oracle服務(wù)和監(jiān)聽。用sys/as dba x0dx0a登陸數(shù)據(jù)庫,可能會(huì)提示權(quán)限不夠(ora-01031)修改(X:\oracle\ora92\network\admin x0dx0a)文件夾下的sqlnet.ora文件,添加SQLNET.AUTHENTICATION_SERVICES= x0dx0a(NTS),增加權(quán)限。登陸進(jìn)去后,打開table提示不能打開。打開common頁,執(zhí)行命令alert database x0dx0aopen;這時(shí)再刷新table,發(fā)現(xiàn)原先的表可以打開了?;謴?fù)成功了。再用原先數(shù)據(jù)庫的普通用戶進(jìn)入。發(fā)現(xiàn)一切正常。至此,大功告成。x0dx0ax0dx0a第二種:x0dx0ax0dx0a1、首先,將原來的ORACLE文件夾改名,原來的路徑是D:/oracle.我暫時(shí)改成D:/oracle_old.找來ORACLE(我用x0dx0a的是ORACLE 9I)安裝光盤,將ORACLE安裝在原來安裝的目錄下,這樣恢復(fù)起來更加方便,主要是注冊(cè)表的內(nèi)容不用修改。x0dx0ax0dx0a2、安裝完了之后,系統(tǒng)中又有一個(gè)可以使用的ORACLE了。這個(gè)時(shí)候要做的就是將原來的文件和數(shù)據(jù)恢復(fù)過來。第一步,先關(guān)閉ORACLE的所x0dx0a有已經(jīng)啟動(dòng)的項(xiàng)目,在"服務(wù)"里面逐一關(guān)閉。然后,將安裝目錄改名。我現(xiàn)在用的是D:/oracle.改成D:/oracle_new.再將D:x0dx0a/oracle_old改成D:/oracle. x0dx0a這樣理論上說從物理層面恢復(fù)了ORACLE了。但是我們發(fā)現(xiàn),現(xiàn)在還不能啟動(dòng)ORACLE的監(jiān)聽程序和服務(wù)程序。我們還要從邏輯上解決。x0dx0ax0dx0a3、在dos環(huán)境下執(zhí)行一個(gè)刪除命令:oradim -delete -sid mm,其中mm為創(chuàng)建oracle時(shí)候創(chuàng)建的實(shí)例 x0dx0a建議執(zhí)行這個(gè)命令后重新啟動(dòng)機(jī)器,重啟后就可以建立和原來實(shí)例名相同的實(shí)例。當(dāng)然你懶,不重新啟動(dòng)也可以,但是你的實(shí)例名就不能和原來的一樣了。x0dx0ax0dx0a4、在dos環(huán)境下執(zhí)行命令 oradim -new -sid mm -startmode a -pfile "D:\oracle\admin\mm\pfile\initmm.ora "創(chuàng)建一個(gè)新的實(shí)例,其中 "mm"為新數(shù)據(jù)庫的名稱。x0dx0ax0dx0a5、啟動(dòng)服務(wù),先打開數(shù)據(jù)庫,然后可以用以前的用戶名和密碼登陸進(jìn)去。 x0dx0a要補(bǔ)充的是,一般的ORACLE數(shù)據(jù)庫的監(jiān)聽程序都是用電腦的名稱來識(shí)別地址的,而不是127.0.0.1或者localhost.所以,如果我們安裝系x0dx0a統(tǒng)的時(shí)候用的是不同的電腦名稱(比如我原來用的是wm_mm.重新安裝后用的是wenming_mm),那么我們還有一個(gè)工作要做,就是修改文件 x0dx0alistener.ora.將里面的相關(guān)的東西改過來就可以了。x0dx0ax0dx0a需要耐心、細(xì)心,可能在一步里有一個(gè)細(xì)小的差別就會(huì)出些古怪的錯(cuò)誤提示,有時(shí)需要根據(jù)錯(cuò)誤提示采取策略,總之原理是,先裝一個(gè)一模一樣的ORACLE,安裝目錄、數(shù)據(jù)庫名稱都一樣,這樣保證注冊(cè)表里不用更改;再覆蓋物理文件,最后重新實(shí)例化,打開數(shù)據(jù)庫就可以進(jìn)去了。

    二、oracle數(shù)據(jù)update后怎么恢復(fù)到以前的數(shù)據(jù)?

    1、select * from V$SQL where SQL_TEXT like '%update MAP_OPTCBL_POINT_70 set shape%'--查出你需要恢復(fù)的時(shí)間點(diǎn)。

    2、create table t_table_recove --新的表。

    as select * from MAP_OPTCBL_POINT_70 --你誤操作的表。

    as of timestamp to_timestamp('2013-09-23 11:38:46','yyyy-mm-dd hh44:mi:ss');--時(shí)間點(diǎn)

    --得到你想要的數(shù)據(jù)。

    3、delete  MAP_OPTCBL_POINT_70;--將原表的數(shù)據(jù)全部刪除。

    4、insert into MAP_OPTCBL_POINT_70 select * from t_table_recove;--恢復(fù)數(shù)據(jù)。

    甲骨文股份有限公司(Oracle)是全球大型數(shù)據(jù)庫軟件公司,總部位于美國(guó)加州紅木城的紅木岸。在2008年,甲骨文股份有限公司是繼Microsoft及IBM后,全球收入第三多的軟件公司。Oracle數(shù)據(jù)庫產(chǎn)品為財(cái)富排行榜上的前1000家公司所采用,許多大型網(wǎng)站也選用了Oracle系統(tǒng)。甲骨文股份有限公司于1989年正式進(jìn)入中國(guó),在北京、上海、廣州和成都均設(shè)立了分支機(jī)構(gòu)。

    進(jìn)程是操作系統(tǒng)中的一種機(jī)制,它可執(zhí)行一系列的操作步。在有些操作系統(tǒng)中使用作業(yè)(JOB)或任務(wù)(TASK)的術(shù)語。一個(gè)進(jìn)程通常有它自己的專用存儲(chǔ)區(qū)。ORACLE進(jìn)程的體系結(jié)構(gòu)設(shè)計(jì)使性能最大。

    ORACLE實(shí)例有兩種類型:?jiǎn)芜M(jìn)程實(shí)例和多進(jìn)程實(shí)例。

    三、oracle update 數(shù)據(jù)更新錯(cuò)誤,想恢復(fù)更新前的數(shù)據(jù),該如何恢復(fù)

    flashback table與9i的flashback query相似,利用undo信息來恢復(fù)一個(gè)或者一些表到現(xiàn)在以前的一個(gè)時(shí)間點(diǎn)(一個(gè)快照)。Undo相關(guān)參數(shù)如下,需要確保AUM與足夠的retention值。

    SQL> show parameter undo

    NAME TYPE VALUE

    ------------------------------------

    undo_management string AUTO

    undo_retention integer 900

    undo_tablespace string UNDOTBS1

    首先要說明的是,flashback table不等于flashback query,所謂query,僅僅是查詢以前的一個(gè)快照點(diǎn)而已,并不改變當(dāng)前表的狀態(tài),而flashback table不一樣,將改變當(dāng)前表及附屬對(duì)象一起回到以前的時(shí)間點(diǎn)。

    其實(shí)9i的flashback query在10g中也有了新的變化,10g中可以簡(jiǎn)單的利用以下語句實(shí)現(xiàn)flashback query,而不再需要象9i那樣需要調(diào)用DBMS_FLASHBACK包。

    SELECT * FROM TABLENAME AS OF TIMESTAMP

    TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')

    WHERE ……;

    10g的flashback table有如下特性

    · 在線操作

    · 恢復(fù)到指定時(shí)間點(diǎn)或者SCN的任何數(shù)據(jù).

    · 自動(dòng)恢復(fù)相關(guān)屬性,如索引,觸發(fā)器等

    · 滿足分布式的一致性

    · 滿足數(shù)據(jù)一致性,所有相關(guān)對(duì)象將自動(dòng)一致

    語法為:

    FLASHBACK TABLE tablename TO TIMESTAMP (JUL-07-2003, 02:33:00)

    FLASHBACK TABLE employee TO SCN 123456;

    FLASHBACK TABLE t1 TO TIMESTAMP '2003-03-03 12:05:00' ENABLE TRIGGERS;

    其中ENABLE TRIGGERS表示觸發(fā)器恢復(fù)之后為enable狀態(tài),而默認(rèn)為disable狀態(tài)。

    注意:如果需要flashback一個(gè)表,需要保證

    需要有flashback any table的系統(tǒng)權(quán)限或者是該表的flashback對(duì)象權(quán)限。

    需要有該表的SELECT, INSERT, DELETE, ALTER權(quán)限

    必須保證該表ROW MOVEMENT

    下面,我們用一個(gè)詳細(xì)的例子來說明這個(gè)過程:

    16:16:51 SQL> create user flash identified by flash;

    User created.

    16:17:04 SQL> grant connect,resource to flash;

    Grant succeeded.

    16:17:19 SQL> connect flash/flash;

    Connected.

    16:26:35 SQL> create table t1 as select * from all_objects;

    Table created.

    16:37:24 SQL> create table t2 as select * from t1;

    Table created.

    16:37:35 SQL> select count(*) from t1;

    COUNT(*)

    ----------

    38949

    16:37:43 SQL> select count(*) from t2;

    COUNT(*)

    ----------

    38949

    16:38:06 SQL> create index inx_test1 on T1 (object_name);

    Index created.

    16:39:55 SQL> create index inx_test2 on T1 (object_id);

    Index created.

    16:40:47 SQL> select to_char(sysdate,'yyyy-mm-dd hh44:mi:ss') from dual;

    TO_CHAR(SYSDATE,'YY

    -------------------

    2004-04-06 16:41:18

    以上獲得一個(gè)時(shí)間戳,假定我們要恢復(fù)該表到這個(gè)時(shí)間,那么以下對(duì)該表的操作都將被前滾。

    16:41:18 SQL> drop index inx_test1;

    Index dropped.

    16:41:33 SQL> delete from t1;

    38949 rows deleted.

    16:41:46 SQL> commit;

    Commit complete.

    16:41:49 SQL> truncate table t2;

    Table truncated.

    在以上的操作中,我們delete一個(gè)表,然后truncate一個(gè)表,下面,我們將來看看flashback table的效果,能恢復(fù)到什么程度

    16:37:55 SQL> ALTER TABLE t1 ENABLE ROW MOVEMENT;

    Table altered.

    16:38:03 SQL> ALTER TABLE t2 ENABLE ROW MOVEMENT;

    Table altered.

    16:43:10 SQL> flashback table t1 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh44:mi:ss');

    Flashback complete.

    16:43:49 SQL> flashback table t2 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh44:mi:ss');

    flashback table t2 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh44:mi:ss')

    *

    ERROR at line 1:

    ORA-01466: unable to read data - table definition has changed

    我們可以發(fā)現(xiàn),執(zhí)行delete操作的表是可以恢復(fù)的,而執(zhí)行truncate操作的表是不可以恢復(fù)的,這正好也說明了flashback table利用undo的結(jié)論。

    看看我們的結(jié)果:

    SQL> select count(*) from t1;

    COUNT(*)

    ----------

    38949

    SQL> select count(*) from t2;

    COUNT(*)

    ----------

    0

    SQL> select t.index_name from user_indexes t where t.table_name='T1';

    INDEX_NAME

    ------------------------------

    INX_TEST2

    還可以看到,對(duì)于drop的索引,也是沒有辦法恢復(fù)的,因?yàn)閐rop并不記錄undo,所以所謂索引的恢復(fù),僅僅是相關(guān)索引樹的改變而不能找回刪除掉的索引。

    四、oracle數(shù)據(jù)庫數(shù)據(jù)刪除后如何恢復(fù)?

    刪除表后,可以采用如下操作:

    在 user_recyclebin中找到最近操作過的表名稱,然后用閃回(只能用于10G及以上版本)。

    FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;

    如果是刪了或修改里面的數(shù)據(jù),可以先建立一個(gè)快表將刪除修改之前狀態(tài)的數(shù)據(jù)找回到這個(gè)表中:

    CREATE TABLE QUICK_TABLE AS

    SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSTEM-1/24 (一小時(shí)前的),減去的時(shí)間可以自己定。如樓上F_253那位老兄的寫法就不錯(cuò),能自由定制時(shí)間

    以上就是關(guān)于oracle恢復(fù)數(shù)據(jù)快照過舊相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    wordpress建站公司(wordpress搭建公司網(wǎng)站)

    小冊(cè)子怎么排版(word打印成對(duì)折小冊(cè)子怎么打)

    怎么恢復(fù)桌面word常規(guī)圖標(biāo)(怎么恢復(fù)桌面word常規(guī)圖標(biāo)顯示)

    杭州人才居住證有效期多久(杭州人才居住證有效期多久-)

    景觀設(shè)計(jì)圖紙鋪裝排版(景觀設(shè)計(jì)圖紙鋪裝排版圖片)