首页 > Linux操作系统 > Linux操作系统 > 【实验】重建control
[ 获取重建控制文件的脚本 ]
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博客 ” ,链接:https://blog.itpub.net/16500289/viewspace-683643/ ,如需转载,请注明出处,否则将追究法律责任。