qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

Oracle数据库冷备份的还原及emca重建资料库

 删除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> conn sys/密码 as sysdba
  解锁:SQL> alter user dbsnmp account unlock;
  提交:SQL> commit;
  修改密码:SQL> alter user dbsnmp identified by 你的新密码;
  提交:SQL> commit;
  注意:提交很重要,不然解锁不会生效。
 开始重新创建资料库,在命令行执行以下命令:
  [oracle@localhost~]emca -repos recreate
  此时如出现(一般不会出现)如下错误:
  =========================================================
  ORA-12526: TNS:listener: all appropriate instances are in restricted mode
  =========================================================
  意思是:连接oracle数据库出现oracleORA-12526: TNS:监听程序: 所有适用例程都处于受限模式。
  原因是之前改字符集时执行了:
  [oracle@localhost~]# ALTER SYSTEM ENABLE RESTRICTEDSESSION;
  导致受限
  解决办法:使用系统管理员身份运行以下一段代码
  [oracle@localhost~]# ALTER SYSTEM DISABLE RESTRICTEDSESSION;
  解决完以后再次执行:
  [oracle@localhost~]# emca -repos recreate
  此时会提示输入相关参数,按照提示输入即可,其中监听程序端口号为: 1521 ,等待一小会时间,执行完毕以后再停止agent:
  [oracle@localhost~]# emctl stop agent
  最后开始重建资料库:
  [oracle@localhost~]# emca -config dbcontrol db
  此时同样会提示输入相关参数,按照提示输入即可,其中监听程序端口号还是为为: 1521 ,其中通知的电子邮件地址 (可选)和通知的发件 (SMTP) 服务器 (可选)两项可以不写,直接按enter键。
  再次等待一小会时间,执行完毕以后重建资料库成功,启动Enterprise Manager:
  [oracle@localhost ~]# emctl start dbconsole
  在浏览器地址栏输入:http://localhost:1158/em即可使用Enterprise Manager管理数据库。若其他机器无法连接,关闭防火墙即可。

posted on 2014-04-22 18:36 顺其自然EVO 阅读(258) 评论(0)  编辑  收藏 所属分类: 测试学习专栏数据库


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜