扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、首先新建一张测试表TEST,里面输入记录。由于删除/更新/插入恢复步骤相同,这里仅演示删除数据的情况。
专注于为中小企业提供成都网站制作、成都网站设计、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业淮南免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
2、删除其中1条记录,查看表中记录情况,由下图可见,记录2被删除了。
3、恢复之前先确定要恢复到的时间点,下图可以看出2018-03-07 15:33:00数据是正确的。
SELECT *
FROM TEST AS OF TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
4、下面进行表数据恢复。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
可以看到报错了,原因是没有开启行移动。
5、开启该表的行移动。
ALTER TABLE TEST ENABLE ROW MOVEMENT;
6、再次执行数据恢复。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
然后查看数据情况,可以看到已经恢复了。
行链接产生在第一次插入数据的时候如果一个block不能存放一行记录的情况下。这种情况下,Oracle将使用链接一个或者多个在这个段中保留的block存储这一行记录,行链接比较容易发生在比较大的行上,例如行上有LONG、LONG RAW、LOB等数据类型的字段.
1.可以用oracle的表空间传输
2.用stream或高级复制
3.不成的话,直接在目标库创建一个与源库完全相同的DB,然后把controlfile,spfile,init_SID.ora,pwdfile拷贝到目标库的相同目录下,然后使用一个rman备份,进行恢复。
4.可以做成DG,将新库设置成standby db,源库设置为primary db。然后做些切换应该也可以。
5.用数据泵impdp/expdp。不知道你的数据量有多大?如果几百G的话,设置好参数,不导index,加commit=y,或是写PLSQL,没10000行commit一次。速度应该还是可以的。
上面4中方法都可以,感觉方法3,4不错,3我测试过,可以的,而且步骤基本也就这样。2我没用过。方法1也可以,查下资料就可以,不是很难。
有的详细步骤比较麻烦,还是自己先看下资料,或是请专业DBA来做下吧
如果你熟悉Oracle的架构,那么答案是在A SHutDown Instance COPY所有的密码文件,pfile。spfile,建立一样的instanse用的目录, 所有数据文件,redo文件,控制文件到B机器上,用ORADIM建立服务(假设是Windows) 启动 完成如果你不熟悉ORACLE的架构1 在B机器上按你A机器上一样的名字,地方 方法 建立一个instance 2 AB两台机器的instance全部关闭3 A机器上的所有数据文件,redo文件,控制文件COPY到B机器 覆盖4 启动B数据库 OK 完成
Oracle数据库的完整性有三个:实体完整性、参考完整性和自定义完整性。它的实现是通过5五个约束来完成的。五个约束如下:
主键 primary key
非空 not null
唯一 unique
检查 check
外键 foreign key
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流