登录  /  注册
Oracle数据库冷备份的还原及emca重建资料库
php中文网
发布: 2016-06-07 16:48:01
原创
622人浏览过

删除oracle数据库中已经建立的数据库,按照备份的oracle路径重新安装新建数据库,路径、数据库SMID必须和原来的完全一致。停止所

删除Oracle数据库中已经建立的数据库,,按照备份的oracle路径重新安装新建数据库,路径、数据库SMID必须和原来的完全一致。

停止所有的Oracle服务,到oracle安装目录下,把新建的数据库删除,把备份的文件夹复制进来。

重新启动oracle服务,此时可以通过sqlplus对数据库进行相关的操作,但要使用EM(Enterprise Manager)对数据库进行管理时会显示“Enterprise Manager 无法连接到数据库实例,下面列出了组件的状态”的信息,此时EM无法正常使用。出现问题的原因很多,可以用emca重建资料库解决。

emca重建资料库:

用sqlplus登录,删除早期DBCONSOLE创建的用户:

SQL> dropuser sysman cascade;

若正常的话会等待一段时间,可能会出现如下错误:

=========================================================

ERROR at line 1:

ORA-06553: PLS-801: internal error [56319]

=========================================================

错误原因:用64位系统上的备份片将数据库还原到32位系统中所产生,反过来也会产生此错误。

解决方案:运行脚本用32位系统重新编译一下内核参数即可

SQL> shutdown immediate;

SQL> startup upgrade;

SQL> @?/rdbms/admin/utlirp.sql

SQL> @?/rdbms/admin/utlrp.sql

SQL> shutdown immediate;

SQL> startup;

其中:

utlirp.sql的作用是把相关内容全部在32bit平台下编译一遍.

utlrp.sql的作用是编译所有失效对象.

然后再重新连接,就不会报错了。

接下来继续重建资料库

SQL> droprole MGMT_USER;

SQL> dropuser MGMT_VIEW cascade;

删除早期DBCONSOLE创建的对象:

SQL> droppublic synonym MGMT_TARGET_BLACKOUTS;

SQL> droppublic synonym SETEMVIEWUSERCONTEXT;

在配置oem时遇到“DBSNMP 用户名或密码无效”的错误,原因是DBSNMP系统用户可能被锁用,所以我们首先解锁DBSNMP用户。

登录:SQL>

解锁:SQL> alter user dbsnmp account unlock;

提交:SQL> commit;

修改密码:SQL>

提交:SQL> commit;

注意:提交很重要,不然解锁不会生效。

开始重新创建资料库,在命令行执行以下命令:

[oracle@localhost~]emca -repos recreate

此时如出现(一般不会出现)如下错误:

=========================================================

ORA-12526: TNS:listener: all appropriate instances are in restricted mode

=========================================================

原因是之前改字符集时执行了:

[oracle@localhost~]# ALTER SYSTEM ENABLE RESTRICTEDSESSION

导致受限

解决办法:使用系统管理员身份运行以下一段代码

[oracle@localhost~]# ALTER SYSTEM DISABLE RESTRICTEDSESSION;

解决完以后再次执行:

[oracle@localhost~]# emca -repos recreate

[oracle@localhost~]# emctl stop agent

最后开始重建资料库:

[oracle@localhost~]# emca -config dbcontrol db

再次等待一小会时间,执行完毕以后重建资料库成功,启动Enterprise Manager:

[oracle@localhost ~]# emctl start dbconsole

在浏览器地址栏输入::1158/em即可使用Enterprise Manager管理数据库。若其他机器无法连接,关闭防火墙即可。

本文永久链接地址:

linux

来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学