测试oracle数据库的脱机备份和恢复
发布时间:2020-12-12 15:51:05 所属栏目:百科 来源:网络整理
导读:环境:windows7、Oracle11g 一、脱机备份 脱机备份是指在数据库关闭情况下的数据备份,也称为冷备份。 在书上学到的备份步骤: 1、记录所要备份数据库文件所在的操作系统路径; 2、关闭数据库,不要使用shutdown abort这种关闭方式; 3、拷贝数据库文件到备份
环境:windows7、Oracle11g
一、脱机备份 脱机备份是指在数据库关闭情况下的数据备份,也称为冷备份。 在书上学到的备份步骤: 1、记录所要备份数据库文件所在的操作系统路径; 2、关闭数据库,不要使用shutdown abort这种关闭方式; 3、拷贝数据库文件到备份目录中; 4、重启数据库,完成备份。 了解到这些步骤后,做了一个备份测试,要备份的数据库为testdb。 1、记录所要备份数据库文件所在的操作系统路径 (1)查看数据文件的路径(用管理员账户连接) 备注:可以在sqlplus命令行或者plsql执行下面sql语句 select file_name,tablespace_name from dba_data_files; D:APPLCORADATATESTDBUSERS01.DBF USERS D:APPLCORADATATESTDBUNDOTBS01.DBF UNDOTBS1 D:APPLCORADATATESTDBSYSAUX01.DBF SYSAUX D:APPLCORADATATESTDBSYSTEM01.DBF SYSTEM (2)查看控制文件的路径 select name from v$controlfile; D:APPLCORADATATESTDBCONTROL01.CTL D:APPLCFLASH_RECOVERY_AREATESTDBCONTROL02.CTL (3)查看重做日志文件的路径 select member from v$logfile; D:APPLCORADATATESTDBREDO03.LOG D:APPLCORADATATESTDBREDO02.LOG D:APPLCORADATATESTDBREDO01.LOG 2、关闭数据库 SQL> conn system/Oracle123456@testdb as sysdba 已连接。 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 3、拷贝数据库文件到备份目录中; 如果在sqlplus下可以使用host copy拷贝,也可以直接选择文件拷贝,把第1步的所有文件拷贝到D:dbbackup中。 4、启动数据库。 SQL> startup ORACLE 例程已经启动。 ...... 二、数据库恢复 为了模拟数据库恢复,在DBCA工具中把testdb删除掉,删除成功后,执行下面恢复步骤。 1、把D:dbbackup中的文件拷贝到原来的D:APPLCORADATATESTDB等目录下。 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这个文件。 ------------------------------------------------------- 网上搜索了下,解决方法基本和下面大同小异: initoracle.ora即可。(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID ------------------------------------------------------ 在电脑找了下,在D:appLCadminorclpfile目录下有一个init.ora.9182016154717文件,把它复制到 D:/app/LC/product/11.2.0/dbhome_1/database目录下,把里面内容的所有“orcl”改为“testdb”,保存为inittestdb.ora。 在D:appLCadmin目录下建立testdb及它的子目录pfile。 这时候再回到cmd命令行窗口执行startup,终于成功启动数据库了。 这时候用plsql登录却提示ORA-12154: TNS: 无法解析指定的连接标识符。 解决方法: 打开 D:appLCproduct11.2.0dbhome_1NETWORKADMINtnsnames.ora,模仿里面的ORCL代码,手动添加下面语句 TESTDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = testdb) ) ) 三、总结 通过上面例子,知道除了备份数据文件、控制文件、重做日志文件,还要备份参数文件。 于是重新建立一个数据库tdb,这次备份除了数据文件、控制文件、重做日志文件,还备份了 (1)D:appLCproduct11.2.0dbhome_1database目录下的3个文件:hc_tdb.dat、PWDtdb.ora、SPFILETDB.ORA (2)D:appLCadmintdb整个目录,里面有adump、dpdump、pfile共3个目录,其中pfile下面有个init.ora.919201613321文件。 (3)D:appLCproduct11.2.0dbhome_1NETWORKADMINtnsnames.ora 恢复的时候把数据文件、控制文件、重做日志文件、SPFILETDB.ORA、tnsnames.ora内容还原。 终于成功恢复数据库。 hc_tdb.dat、PWDtdb.ora、D:appLCadmintdb目录似乎恢复没用到,但最好也是还原下。 附,恢复时候执行的命令行: C:Windowssystem32>oradim -new -sid tdb 实例已创建。 C:Windowssystem32>set oracle_sid=tdb C:Windowssystem32>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>(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |