忘记oracle数据库账号记录一次Oracle冷备份级还原及遇到的问题处理

问题1:原电脑的数据库装在C盘下和系统在一起,反正很卡,现在把数据库及数据文件放在D盘,控制文件中记录需oracle账号要修改

启动监听之后,sqlplus / as system 登录之后执行

修改控制文件中数据文件的位置

alter database rename file 'C:\APP\ADMINISTRATOR\ORADATA\NJTS\SYSAUX01.DBF' to 'D:\APP\ADMINISTRATOR\ORADATA\NJTS\SYSAUX01.DBF';

修改控制文件中log文件的位置

alter database rename file 'C:\APP\ADMINISTRATOR\ORADATA\NJTS\REDO01.LOG' to 'D:\APP\ADMINISTRATOR\ORADATA\NJTS\REDO01.LOG';

问题2:电脑由于突然断电,当时数据库正在使用,导致记录的文件信息和实际文件信息不一致

报错:ORA-01200: actual file size of 384000000 is smaller than correct size of 512000000 blocks

处理方式:

1.使用Oracle内部工具BBED,不支持windows,我也不会用

2.使用dd工具,原本是linux下的命令,现在有dd for windows的包了,直接下载来使用就可以了。dd百度百科

处理过程:

1.下载解压,cmd进入dd.exe所在的文件夹

2.计算记录文件大小和实际文件大小相差多少 512000000-384000000=128000000

3.创建一个得到的大小的文件,和数据文件放一起就可以了

dd if=D:\APP\ADMINISTRATOR\ORADATA\NJTS\SIBI01.DBF of=D:\APP\ADMINISTRATOR\ORADATA\NJTS\SIBI11111 count=128000000 bs=8k

4.把报错的数据文件和创建的文件合并

windows:type D:\APP\ADMINISTRATOR\ORADATA\NJTS\SIBI11111 >>D:\APP\ADMINISTRATOR\ORADATA\NJTS\SIBI01.DBF

linux:cat D:\APP\ADMINISTRATOR\ORADATA\NJTS\SIBI11111 >>D:\APP\ADMINISTRATOR\ORADATA\NJTS\SIBI01.DBF

然后就可以启动数据库了

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。