HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    oracle恢复数据快照过旧(oracle误删除数据恢复快照过旧)

    发布时间:2023-04-10 16:56:13     稿源: 创意岭    阅读: 64        

    大家好!今天让创意岭的小编来大家介绍下关于oracle恢复数据快照过旧的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    oracle恢复数据快照过旧(oracle误删除数据恢复快照过旧)

    一、重装系统后,怎么恢复oracle数据库?

    任何软件都有可能在有意或无意的情况下被重新安装,如Oracle重装后数据库怎么恢复呢?情况发生在你是无意的情况下!ORACLE数据库恢复的方法我们经常会用到,下面就为您介绍重装系统后ORACLE数据库恢复的方法,希望对您学习ORACLE数据库恢复方面能有所帮助。x0dx0ax0dx0a我的电脑突然挂了,不得不重装系统,不过我的ORACLE装在了D盘,所有的文件都还在,我相信一定能够恢复,直到搞定工作,我才开始整我的数据库,花了两天时间,终于恢复了,庆祝一下,同时总结一下,希望有遇到同样问题的朋友能够快速搞定此类问题x0dx0ax0dx0a第一种:x0dx0ax0dx0a首先,备份数据库(X:\oracle\oradata)下的数据文件,重新命名即可(否则装数据库的时候会提示sid已存在)。重新安装数据x0dx0a库,当然数据库的名字就是你要恢复的名字。安装完成后,打开控制面板,停止oracle的服务。把(X:\oracle\oradata)下新生成的文件x0dx0a改名,把原先目录下的文件恢复名字。再重新启动oracle服务和监听。用sys/as dba x0dx0a登陆数据库,可能会提示权限不够(ora-01031)修改(X:\oracle\ora92\network\admin x0dx0a)文件夹下的sqlnet.ora文件,添加SQLNET.AUTHENTICATION_SERVICES= x0dx0a(NTS),增加权限。登陆进去后,打开table提示不能打开。打开common页,执行命令alert database x0dx0aopen;这时再刷新table,发现原先的表可以打开了。恢复成功了。再用原先数据库的普通用户进入。发现一切正常。至此,大功告成。x0dx0ax0dx0a第二种:x0dx0ax0dx0a1、首先,将原来的ORACLE文件夹改名,原来的路径是D:/oracle.我暂时改成D:/oracle_old.找来ORACLE(我用x0dx0a的是ORACLE 9I)安装光盘,将ORACLE安装在原来安装的目录下,这样恢复起来更加方便,主要是注册表的内容不用修改。x0dx0ax0dx0a2、安装完了之后,系统中又有一个可以使用的ORACLE了。这个时候要做的就是将原来的文件和数据恢复过来。第一步,先关闭ORACLE的所x0dx0a有已经启动的项目,在"服务"里面逐一关闭。然后,将安装目录改名。我现在用的是D:/oracle.改成D:/oracle_new.再将D:x0dx0a/oracle_old改成D:/oracle. x0dx0a这样理论上说从物理层面恢复了ORACLE了。但是我们发现,现在还不能启动ORACLE的监听程序和服务程序。我们还要从逻辑上解决。x0dx0ax0dx0a3、在dos环境下执行一个删除命令:oradim -delete -sid mm,其中mm为创建oracle时候创建的实例 x0dx0a建议执行这个命令后重新启动机器,重启后就可以建立和原来实例名相同的实例。当然你懒,不重新启动也可以,但是你的实例名就不能和原来的一样了。x0dx0ax0dx0a4、在dos环境下执行命令 oradim -new -sid mm -startmode a -pfile "D:\oracle\admin\mm\pfile\initmm.ora "创建一个新的实例,其中 "mm"为新数据库的名称。x0dx0ax0dx0a5、启动服务,先打开数据库,然后可以用以前的用户名和密码登陆进去。 x0dx0a要补充的是,一般的ORACLE数据库的监听程序都是用电脑的名称来识别地址的,而不是127.0.0.1或者localhost.所以,如果我们安装系x0dx0a统的时候用的是不同的电脑名称(比如我原来用的是wm_mm.重新安装后用的是wenming_mm),那么我们还有一个工作要做,就是修改文件 x0dx0alistener.ora.将里面的相关的东西改过来就可以了。x0dx0ax0dx0a需要耐心、细心,可能在一步里有一个细小的差别就会出些古怪的错误提示,有时需要根据错误提示采取策略,总之原理是,先装一个一模一样的ORACLE,安装目录、数据库名称都一样,这样保证注册表里不用更改;再覆盖物理文件,最后重新实例化,打开数据库就可以进去了。

    二、oracle数据update后怎么恢复到以前的数据?

    1、select * from V$SQL where SQL_TEXT like '%update MAP_OPTCBL_POINT_70 set shape%'--查出你需要恢复的时间点。

    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');--时间点

    --得到你想要的数据。

    3、delete  MAP_OPTCBL_POINT_70;--将原表的数据全部删除。

    4、insert into MAP_OPTCBL_POINT_70 select * from t_table_recove;--恢复数据。

    甲骨文股份有限公司(Oracle)是全球大型数据库软件公司,总部位于美国加州红木城的红木岸。在2008年,甲骨文股份有限公司是继Microsoft及IBM后,全球收入第三多的软件公司。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。甲骨文股份有限公司于1989年正式进入中国,在北京、上海、广州和成都均设立了分支机构。

    进程是操作系统中的一种机制,它可执行一系列的操作步。在有些操作系统中使用作业(JOB)或任务(TASK)的术语。一个进程通常有它自己的专用存储区。ORACLE进程的体系结构设计使性能最大。

    ORACLE实例有两种类型:单进程实例和多进程实例。

    三、oracle update 数据更新错误,想恢复更新前的数据,该如何恢复

    flashback table与9i的flashback query相似,利用undo信息来恢复一个或者一些表到现在以前的一个时间点(一个快照)。Undo相关参数如下,需要确保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,仅仅是查询以前的一个快照点而已,并不改变当前表的状态,而flashback table不一样,将改变当前表及附属对象一起回到以前的时间点。

    其实9i的flashback query在10g中也有了新的变化,10g中可以简单的利用以下语句实现flashback query,而不再需要象9i那样需要调用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有如下特性

    · 在线操作

    · 恢复到指定时间点或者SCN的任何数据.

    · 自动恢复相关属性,如索引,触发器等

    · 满足分布式的一致性

    · 满足数据一致性,所有相关对象将自动一致

    语法为:

    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表示触发器恢复之后为enable状态,而默认为disable状态。

    注意:如果需要flashback一个表,需要保证

    需要有flashback any table的系统权限或者是该表的flashback对象权限。

    需要有该表的SELECT, INSERT, DELETE, ALTER权限

    必须保证该表ROW MOVEMENT

    下面,我们用一个详细的例子来说明这个过程:

    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

    以上获得一个时间戳,假定我们要恢复该表到这个时间,那么以下对该表的操作都将被前滚。

    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一个表,然后truncate一个表,下面,我们将来看看flashback table的效果,能恢复到什么程度

    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

    我们可以发现,执行delete操作的表是可以恢复的,而执行truncate操作的表是不可以恢复的,这正好也说明了flashback table利用undo的结论。

    看看我们的结果:

    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

    还可以看到,对于drop的索引,也是没有办法恢复的,因为drop并不记录undo,所以所谓索引的恢复,仅仅是相关索引树的改变而不能找回删除掉的索引。

    四、oracle数据库数据删除后如何恢复?

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

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

    FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;

    如果是删了或修改里面的数据,可以先建立一个快表将删除修改之前状态的数据找回到这个表中:

    CREATE TABLE QUICK_TABLE AS

    SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSTEM-1/24 (一小时前的),减去的时间可以自己定。如楼上F_253那位老兄的写法就不错,能自由定制时间

    以上就是关于oracle恢复数据快照过旧相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    wordpress建站公司(wordpress搭建公司网站)

    小册子怎么排版(word打印成对折小册子怎么打)

    怎么恢复桌面word常规图标(怎么恢复桌面word常规图标显示)

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

    景观设计图纸铺装排版(景观设计图纸铺装排版图片)