将oracle数据库脱机,测试oracle数据库的脱机备份和恢复

环境:windows7、Oracle11g

一、脱机备份

脱机备份是指在数据库关闭情况下的数据备份,也称为冷备份。

在书上学到的备份步骤:

1、记录所要备份数据库文件所在的操作系统路径;

2、关闭数据库,不要使用shutdown abort这种关闭方式;

3、拷贝数据库文件到备份目录中;

4、重启数据库,完成备份。

了解到这些步骤后,做了一个备份测试,要备份的数据库为testdb。

1、记录所要备份数据库文件所在的操作系统路径

(1)查看数据文件的路径(用管理员账户连接)

备注:可以在sqlplus命令行或者plsql执行下面sql语句

select file_name,tablespace_name from dba_data_files;

D:\APP\LC\ORADATA\TESTDB\USERS01.DBF     USERS

D:\APP\LC\ORADATA\TESTDB\UNDOTBS01.DBF   UNDOTBS1

D:\APP\LC\ORADATA\TESTDB\SYSAUX01.DBF    SYSAUX

D:\APP\LC\ORADATA\TESTDB\SYSTEM01.DBF    SYSTEM

(2)查看控制文件的路径

select name from v$controlfile;

D:\APP\LC\ORADATA\TESTDB\CONTROL01.CTL

D:\APP\LC\FLASH_RECOVERY_AREA\TESTDB\CONTROL02.CTL

(3)查看重做日志文件的路径

select member from v$logfile;

D:\APP\LC\ORADATA\TESTDB\REDO03.LOG

D:\APP\LC\ORADATA\TESTDB\REDO02.LOG

D:\APP\LC\ORADATA\TESTDB\REDO01.LOG

2、关闭数据库

SQL> conn [email protected] as sysdba

已连接。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

3、拷贝数据库文件到备份目录中;

如果在sqlplus下可以使用host copy拷贝,也可以直接选择文件拷贝,把第1步的所有文件拷贝到D:\dbbackup中。

4、启动数据库。

SQL> startup

ORACLE 例程已经启动。

......

二、数据库恢复

为了模拟数据库恢复,在DBCA工具中把testdb删除掉,删除成功后,执行下面恢复步骤。

1、把D:\dbbackup中的文件拷贝到原来的D:\APP\LC\ORADATA\TESTDB等目录下。

2、新建一个实例

用管理员权限,在cmd窗口执行下面语句,其中testdb名称要与备份的名字一样

oradim -new -sid testdb

3、查看oracle服务和监听是否启动,如果没启动,则到控制面板的服务或cmd下运行命令启动。

启动服务 net start OracleServicetestdb

启动监听 lsnrctl start

4、启动数据库

cmd命令窗口中

输入   set oracle_sid=testdb回车

再输入 sqlplus  /nolog 回车

再输入 conn / as sysdba 回车

再输入startup 回车

这时却出现了错误:

ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file ‘D:/app/LC/product/11.2.0/dbhome_1/database/inittestdb.ora‘

检查了这个路径,没有inittestdb.ora这个文件。

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

网上搜索了下,解决方法基本和下面大同小异:

解决方法:将$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.012009233838形式的文件copy 到$ORACLE_HOME/database 目录下

initoracle.ora即可。(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID

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

在电脑找了下,在D:\app\LC\admin\orcl\pfile目录下有一个init.ora.9182016154717文件,把它复制到

D:/app/LC/product/11.2.0/dbhome_1/database目录下,把里面内容的所有“orcl”改为“testdb”,保存为inittestdb.ora。

在D:\app\LC\admin目录下建立testdb及它的子目录pfile。

这时候再回到cmd命令行窗口执行startup,终于成功启动数据库了。

这时候用plsql登录却提示ORA-12154: TNS: 无法解析指定的连接标识符。

解决方法:

打开 D:\app\LC\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,模仿里面的ORCL代码,手动添加下面语句

TESTDB =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = testdb)

)

)

三、总结

通过上面例子,知道除了备份数据文件、控制文件、重做日志文件,还要备份参数文件。

于是重新建立一个数据库tdb,这次备份除了数据文件、控制文件、重做日志文件,还备份了

(1)D:\app\LC\product\11.2.0\dbhome_1\database目录下的3个文件:hc_tdb.dat、PWDtdb.ora、SPFILETDB.ORA

(2)D:\app\LC\admin\tdb整个目录,里面有adump、dpdump、pfile共3个目录,其中pfile下面有个init.ora.919201613321文件。

(3)D:\app\LC\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

恢复的时候把数据文件、控制文件、重做日志文件、SPFILETDB.ORA、tnsnames.ora内容还原。

终于成功恢复数据库。

hc_tdb.dat、PWDtdb.ora、D:\app\LC\admin\tdb目录似乎恢复没用到,但最好也是还原下。

附,恢复时候执行的命令行:

C:\Windows\system32>oradim -new -sid tdb

实例已创建。

C:\Windows\system32>set oracle_sid=tdb

C:\Windows\system32>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 10月 19 15:25:45 2016

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn /as sysdba

已连接到空闲例程。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 1686925312 bytes

Fixed Size                  2176368 bytes

Variable Size             989858448 bytes

Database Buffers          687865856 bytes

Redo Buffers                7024640 bytes

数据库装载完毕。

数据库已经打开。

SQL>

原文:http://www.cnblogs.com/gdjlc/p/5977669.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值