==============================================
试验一:把数据库控制文件备份到跟踪文件
==============================================
如果控制文件被意外的删除可以通过跟踪文件来创建,避免麻烦复杂的手工创建
试验一:把数据库控制文件备份到跟踪文件
==============================================
如果控制文件被意外的删除可以通过跟踪文件来创建,避免麻烦复杂的手工创建
(1) 备份跟踪文件
SQL> alter database backup controlfile to trace;
SQL> alter database backup controlfile to trace;
数据库已更改。
(2) 查看跟踪文件的位置
SQL> show parameter user_dump_dest;
(2) 查看跟踪文件的位置
SQL> show parameter user_dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string D:\ORACLE\PRODUCT\10.2.0\ADMIN
\TEST\UDUMP
------------------------------------ ----------- ------------------------------
user_dump_dest string D:\ORACLE\PRODUCT\10.2.0\ADMIN
\TEST\UDUMP
(3) 确定跟踪文件的名称
SQL> select a.spid from v$process a,v$session b
2 where a.addr=b.paddr and b.username='SYS';
2 where a.addr=b.paddr and b.username='SYS';
SPID
------------
3008
------------
3008
跟踪文件的名称如下:test_ora_212.trc,test是实例名,212是服务器进程对应的操作系统进程号。
上面的命令查找到操作系统进程号。根据这个号去找相应的跟踪文件。这个跟踪文件原来是不存在的,只要执行了上面的备份
备份命令后才生成的。
上面的命令查找到操作系统进程号。根据这个号去找相应的跟踪文件。这个跟踪文件原来是不存在的,只要执行了上面的备份
备份命令后才生成的。
(4) 查看跟踪文件中与建立控制文件相关的信息,把这些信息作为命令脚本保存。
(5) 然后down掉数据库,删除控制文件。因为在数据库开的时候是不能删除控制文件的。
(6) 把上面保存的脚本在nomount状态下执行,系统就会根据控制文件参数control_files的值来创建控制文件。
注意: 跟踪文件里提供了两种创建控制文件的脚本,一种是 RESETLOGS;另一种是NORESETLOGS。
如果用第一种,那么在打开数据库的时候要加参数 RESETLOGS。
ALTER DATABASE OPEN RESETLOGS;
如果用第二种不需要加参数 RESETLOGS。
(7) 跟踪文件创建好后shutdown。 然后根据创建控制文件脚本的类型来打开数据库。
如果用第一种,那么在打开数据库的时候要加参数 RESETLOGS。
ALTER DATABASE OPEN RESETLOGS;
如果用第二种不需要加参数 RESETLOGS。
(7) 跟踪文件创建好后shutdown。 然后根据创建控制文件脚本的类型来打开数据库。
注意:只要有一个控制文件的备份就可以恢复由于控制文件损坏导致的数据库失败。由于控制文件不能用记事本打开直接编辑,
所以只要把控制文件备份复制到数据库控制文件的相应多个位置上。然后执行命令:
alter database backup controlfile to trace noresetlogs;
这样就会生成一个新的跟踪文件,这个文件的日期最大,然后编辑这个文本跟踪文件,去掉注释信息,得到创建控制文件的脚本。
示例如下:
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'F:\TEST\TEST\REDOLOGFILE\REDO01.LOG' SIZE 50M,
GROUP 2 'F:\TEST\TEST\REDOLOGFILE\REDO02.LOG' SIZE 50M,
GROUP 3 'F:\TEST\TEST\REDOLOGFILE\REDO03.LOG' SIZE 50M
DATAFILE
'F:\TEST\TEST\DATAFILESYSTEM01.DBF',
'F:\TEST\TEST\DATAFILEUNDOTBS01.DBF',
'F:\TEST\TEST\DATAFILESYSAUX01.DBF',
'F:\TEST\TEST\DATAFILEUSERS01.DBF',
'F:\SY\DF_SY.DBF'
CHARACTER SET ZHS16GBK
;
RECOVER DATABASE
ALTER SYSTEM ARCHIVE LOG ALL;
ALTER DATABASE OPEN;
ALTER SYSTEM ARCHIVE LOG ALL;
ALTER DATABASE OPEN;
所以备份控制文件是很重要的事情,尤其是在数据库的配置发生了变化时一定要备份控制文件。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23062014/viewspace-722723/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23062014/viewspace-722723/