ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【实验】重建control

【实验】重建control

原创 Linux操作系统 作者:Antilog 时间:2011-01-12 09:25:49 0 删除 编辑

[ 获取重建控制文件的脚本 ]

show parameter user_dump_dest
清空或备份udump的目录(trace的名字不是固定的,为方便查找所以这样做)
alter database backup controlfile to trace;
在udump里面会产生trace脚本,里面有重建脚本

[本次任务]
1.数据库名称的修改
2.文件位置的修改
需要做如下的准备工作

复制pfile文件,改名,修改里面的*.db_name=
修改通过获取trace脚本的 DATABASE "数据库名"

如果是windows系统,需要注册新数据库的服务,并先启动该服务
例如:oradim -NEW -SID start / oradim -DELETE -SID start

创建密码文件
orapwd file=D:\oracle\product\10.2.0\db_1\database\PWDstart.ora  password=oracle entries=5 force=y

[非归档模式下]

trace里面的内容注解:

1.修改数据库名称

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE SET DATABASE "START" RESETLOGS  NOARCHIVELOG  --set 在需要修改数据库名称的时候才使用
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'D:\oracle\product\10.2.0\oradata\start\REDO01.LOG'  SIZE 50M,
  GROUP 2 'D:\oracle\product\10.2.0\oradata\start\REDO02.LOG'  SIZE 50M,
  GROUP 3 'D:\oracle\product\10.2.0\oradata\start\REDO03.LOG'  SIZE 50M

DATAFILE
  'D:\oracle\product\10.2.0\oradata\start\SYSTEM01.DBF',
  'D:\oracle\product\10.2.0\oradata\start\UNDOTBS01.DBF',
  'D:\oracle\product\10.2.0\oradata\start\SYSAUX01.DBF',
  'D:\oracle\product\10.2.0\oradata\start\USERS01.DBF',
  'D:\oracle\product\10.2.0\oradata\start\TEST\MOON.DBS'
CHARACTER SET ZHS16GBK;

ALTER DATABASE OPEN RESETLOGS;

ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\oracle\product\10.2.0\oradata\start\TEMP01.DBF'
     SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
-- 最后的temp文件一定要添加,重建control后,临时文件在新的control文件中是没有记录的,如果不创建,临时信息会放在sys表空间里面。

[总结]

通过上述方式进行的control 文件的重建,对于源文件来说仅需要数据文件即可(但是如果数据是不一致关闭的话,有丢失数据的风险,并且如果RMAN使用control,相应的信息也会丢失,此种方法常用于测试环境)
select name from v$datafile;

在创建完控制文件后以 ALTER DATABASE OPEN RESETLOGS; 打开数据库的时候,如果redo文件不存在,数据库会自动重建redo文件。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16500289/viewspace-683643/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-02-14

  • 博文量
    7
  • 访问量
    21113