免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1515 | 回复: 2
打印 上一主题 下一主题

请教个数据库的备份与恢复问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-28 14:54 |只看该作者 |倒序浏览
我通过exp user/passwd file=xxx.dmp 导出一个数据库的dmp包作为备份,恢复之前先运行如下的脚本:

begin
for i in (select table_name from user_tables)
loop
execute immediate('drop table '||i.table_name||' cascade constraints');
end loop;
end;
/
commit;

begin
for i in (select object_type,object_name from user_objects where object_type like 'SEQUENCE')
loop
execute immediate('drop '||i.object_type||' '||i.object_name);
end loop;
end;
/
commit;

begin
for i in (select object_type,object_name from user_objects where object_type like 'PROCEDURE')
loop
execute immediate('drop '||i.object_type||' '||i.object_name);
end loop;
end;
/
commit;

begin
for i in (select object_type,object_name from user_objects where object_type like 'VIEW')
loop
execute immediate('drop '||i.object_type||' '||i.object_name);
end loop;
end;
/
commit;

begin
for i in (select object_type,object_name from user_objects where object_type like 'INDEX')
loop
execute immediate('drop '||i.object_type||' '||i.object_name);
end loop;
end;
/
commit;

再imp之前备份的dmp包时会报错:
IMP-00015: following statement failed because the object already exists:
"CREATE function...

IMP-00015: following statement failed because the object already exists:
"CREATE PACKAGE...

IMP-00017: following statement failed with ORACLE error 1:
"BEGIN   DBMS_JOB.ISUBMIT(JOB=>934,WHAT=>'SP_BC_SubscriberUsage;',NEXT_DATE="
">TO_DATE('2012-08-02:04:00:00','YYYY-MM-DD:HH24:MI:SS'),INTERVAL=>'SYSDATE "
"+ 1',NO_PARSE=>TRUE); END;"
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SYS.I_JOB_JOB) violated
ORA-06512: at "SYS.DBMS_JOB", line 100
ORA-06512: at line 1
IMP-00017: following statement failed with ORACLE error 1:
"BEGIN   DBMS_JOB.ISUBMIT(JOB=>8,WHAT=>'PROC_COLDBINFO;',NEXT_DATE=>TO_DATE("
"'2012-08-31:06:13:36','YYYY-MM-DD:HH24:MI:SS'),INTERVAL=>'SYSDATE + 30',NO_"
"ARSE=>TRUE); END;"
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SYS.I_JOB_JOB) violated
ORA-06512: at "SYS.DBMS_JOB", line 100
ORA-06512: at line 1
IMP-00017: following statement failed with ORACLE error 1:
"BEGIN   DBMS_JOB.ISUBMIT(JOB=>10,WHAT=>'PROC_COLUSERINFOROC_COLTSINFORO"
"C_COLDBINFO;',NEXT_DATE=>TO_DATE('2012-08-02:06:13:36','YYYY-MM-DD:HH24:MI:"
"SS'),INTERVAL=>'SYSDATE + 1',NO_PARSE=>TRUE); END;"
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SYS.I_JOB_JOB) violated
ORA-06512: at "SYS.DBMS_JOB", line 100
ORA-06512: at line 1
IMP-00017: following statement failed with ORACLE error 1:
"BEGIN   DBMS_JOB.ISUBMIT(JOB=>11,WHAT=>'proc_exec_clearcookie;',NEXT_DATE=>"
"TO_DATE('2012-08-02:06:13:36','YYYY-MM-DD:HH24:MI:SS'),INTERVAL=>'SYSDATE +"
" 1',NO_PARSE=>TRUE); END;"
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SYS.I_JOB_JOB) violated
ORA-06512: at "SYS.DBMS_JOB", line 100
ORA-06512: at line 1
IMP-00017: following statement failed with ORACLE error 1:
"BEGIN   DBMS_JOB.ISUBMIT(JOB=>9,WHAT=>'delete from operatelog;',NEXT_DATE=>"
"TO_DATE('2012-08-31:06:13:36','YYYY-MM-DD:HH24:MI:SS'),INTERVAL=>'SYSDATE +"
" 30',NO_PARSE=>TRUE); END;"
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SYS.I_JOB_JOB) violated
ORA-06512: at "SYS.DBMS_JOB", line 100
ORA-06512: at line 1
About to enable constraints...
Import terminated successfully with warnings.

似乎是job package function没删干净是吗?

另外我想问这种备份恢复的方法有问题吗?

我还知道另一种恢复的方法:先drop掉整个用户,运行重建用户脚本,导入备份的dmp包,这两个方法那个更好?

论坛徽章:
0
2 [报告]
发表于 2012-06-29 14:19 |只看该作者
我备份一般优先使用rman,不行的话用expdp/impdp

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
3 [报告]
发表于 2012-07-06 16:28 |只看该作者
drop掉用户及其对象,重建用户,再导入
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP