oracle物理文件删除如何恢复,Oracle数据库物理文件备份/恢复

之前也写过一篇类似的,虽然恢复Oracle数据库物理文件不成问题,但总感觉有不对的地方,后面才了解到,以前自己有存在误区的地方

之前也写过一篇类似的,虽然恢复Oracle数据库物理文件不成问题,,但总感觉有不对的地方,后面才了解到,以前自己有存在误区的地方,重新用此文方法简便得多。

环境:CentOS release 5.6 (Final)

Oracle Database Release 11.2.0.1.0

1、解压压缩好的数据库文件到相应目录

[root@OATest oabak]# tar -jxvf testoa_20140702.tar.bz2

2、还原文件

[root@OATest temp]# su - oracle

[oracle@OATest /]$ export ORACLE_SID=testoa

[oracle@OATest /]$ sqlplus "/as sysdba";

OPEN_MODE

--------------------

READ WRITE

3、关闭数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

4、在sql模式下直接质数据库物理文件至相应的目录(先显示各类文件的路径所在,后拷贝到相应路径)

--显示控制文件

select name from v$controlfile;

--显示数据文件

select name from v$datafile;

--显示延续性的初始化参数文件(延续性:对初始化参数的在线修改可以直接作用到参数文件中)

show parameter spfile;

--显示日志文件

select member from v$logfile;

--orapw$ORACLE_SID密码文件:password file路径 在$ORACLE_HOME/dbs/orapw$ORACLE_SID //跟备份关系不大,可以随时生成。

[oracle@OATest temp]$ sqlplus "/as sysdba";

host cp /usr/oabak/temp/control01.ctl /app/oracle/oradata/testoa/control01.ctl

host cp /usr/oabak/temp/control02.ctl /app/oracle/flash_recovery_area/testoa/control02.ctl

host cp /usr/oabak/temp/system01.dbf /app/oracle/oradata/testoa/system01.dbf

host cp /usr/oabak/temp/sysaux01.dbf /app/oracle/oradata/testoa/sysaux01.dbf

host cp /usr/oabak/temp/undotbs01.dbf /app/oracle/oradata/testoa/undotbs01.dbf

host cp /usr/oabak/temp/users01.dbf /app/oracle/oradata/testoa/users01.dbf

host cp /usr/oabak/temp/redo03.log /app/oracle/oradata/testoa/redo03.log

host cp /usr/oabak/temp/redo02.log /app/oracle/oradata/testoa/redo02.log

host cp /usr/oabak/temp/redo01.log /app/oracle/oradata/testoa/redo01.log

host cp /usr/oabak/temp/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/

host cp /usr/oabak/temp/orapw${ORACLE_SID} $ORACLE_HOME/dbs/

--要删除临时文件, 重启的时候会自动创建temp01.dbf

若不删除临时文件,会出现下面的报错:

ORA-01187: cannot read from file because it failed verification tests

ORA-01110: data file 201: '/app/oracle/oradata/testoa/temp01.dbf'

恢复文件时候没有删除,旧的临时表空间数据文件(300MB),无法创建新的临时表空间文件(500MB) ..所以一直报错

5、启动数据库

SQL> startup

ORACLE instance started.

Total System Global Area 4275781632 bytes

Fixed Size 2220200 bytes

Variable Size 2113933144 bytes

Database Buffers 2147483648 bytes

Redo Buffers 12144640 bytes

Database mounted.

Database opened.

SQL> exit

6、修改用户密码

SQL> alter user oaadmin identified by oaadmin;

User altered.

7、解锁帐户

SQL> alter user oaadmin account unlock;

User altered.

上面第4步也可以利用一条命令直接处理:

select 'host cp /u03/backup/'||substr(name,(instr(name,'http://www.linuxidc.com/',-1)+1))||

' '||name from v$controlfile

union all

select 'host cp /u03/backup/'||substr(name,(instr(name,'http://www.linuxidc.com/',-1)+1))||

' '||name from v$controlfile

union all

select 'host cp /u03/backup/'||substr(member,(instr(member,'http://www.linuxidc.com/',-1)+1))

||' '||member from v$logfile

union all

select 'host cp /u03/backup/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/'

from dual

union all

select 'host cp /u03/backup/orapw${ORACLE_SID} $ORACLE_HOME/dbs/'

from dual;

本文永久更新链接地址:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重做操作系统后oracle数据库恢复 文件夹中文件说明: ora.reg oracle主要注册项的恢复参考文件 oraodbc.reg odbc驱动项的恢复参考文件 oraole1~4.reg ole 驱动项的恢复参考文件 恢复中重要操作说明: 1、恢复前提,数据库系统文件(初始化配置文件、数据文件、重作日志文件、控制文件)没有遭到破坏。 2、注册表的恢复 3、监听程序重新恢复,注意监听配置、tns配置中机器名的核对 4、oracle实例服务的恢复 5、注册表中本地默认实例的恢复 6、计算机管理-用户组中ORA_DBA角色的恢复 操作步骤: 1、系统环境变量的恢复 在系统环境变量path项之前增加oracle系统可执行程序及动态链接库资源如"D:\oracle\ora90\bin;" 2、注册表的恢复 a、oracle数据库系统变量的恢复,ora.reg中饱含了oracle的主要系统参数,其中home项包含了不同的版本信息,导入注册表后可以根据情况修改、增加或者删除对应的home信息。 b、oracle odbc驱动参数的恢复,需要导入oraodbc.reg,此处以oracle90为例,针对不同的oracle版本需要修改相应的参数。导入后,除了检查版本及修改上述参数外还需要手工在注册表(regedit.exe)hkey_local_machine->software->odbc->odbcinst.ini->odbc drivers一项中参考其它字符串,增加一个oracle驱动程序名称(如Oracle in OraHome90)。恢复后可以通过系统odbc管理工具进行配置、测试。最后,如果不需要使用ODBC连接数据库,就不需要进行此处的恢复。 c、oracle oledb驱动参数的恢复,需要导入oraole1~4.reg,实际只需要导入1~2两个文件即可,其它两个属于注册表的副件。同样需要针对不同版本修改相应的参数。恢复后,可以通过配置一个 oledb测试,最快捷的方法为,新建一个文本文件,然后将后缀改为".udl"然后就可以继续操作了。最后,同ODBC一样,如果确定不需要使用ole驱动访问数据库,也可以不进行这部分的恢复操作。 ******此处的操作需要对windows操作系统注册表非常熟悉,对于linux平台,恢复操作类似,只不过需要对环境变量的操作熟悉。 3、监听程序的恢复 a、配置参数的恢复oracle_home\network\admin\listener.ora,检查本地机器名是否有变化,以确定监听参数中监听地址项是否需要修伽。 b、本地访问服务名tnsnames.ora的配置,同样需要检查机器名或ip地址是否有变化。此步骤可以省略 c、监听服务的恢复,运行 lsnrctl,执行start,会自动向系统服务中增加并启动监听服务。可以通过启动时的提示确定服务是否启动成功。确认服务启动成功后,在系统服务管理台里将服务启动属性从“手动”改为“自动”。 ******此处操作需要对lsnrctl工具熟悉。 4、本地默认实例的恢复 在注册表hkey_local_machine->software->oracle->home0->oracle_sid项,确认内容和你要恢复的实例名一致。进行这个操作,主要方便在本地sqlplus或其它客户端登录时不用指定数据库本地网络服务名。 5、系统ORA_DBA组的恢复 在"计算机管理"控制台中->系统工具->本地用户和组->组中,增加名称为"ORA_DBA",描述为"Members can connect to the Oracle database as a DBA without a password"的组,并将系统管理员用户如"Administrator"添加到组中。执行这样的操作,是为了能够在本机上不输入数据库用户名/密码,直接以dba角色登录数据库进行管理。 6、实例的恢复 a、确认数据库的初始化配置文件、数据文件、重作日志文件、控制文件等没有被损坏或缺失。 b、使用oradim工具重建实例服务。如oradim -new -sid test -startmode m -pfile d:\oracle\admin\test\pfile\init.ora oradim是oracle实例管理工具,具体参数说明,可以在命令行中直接输入oradim查看帮助提示。使用它能够创建、修改、删除,启动、停止本机上的oracle实例服务,有兴趣的,可以使用它实现一个单数据库多实例的案例。 c、使用sqlplus以dba身份登录确认数据库是否正常启动。 ******此处操作需要对oradim工具、oracle实例的概念熟悉。 7、恢复完成。可以打开其它应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值