在取证过程中,我们经常会遇到涉案数据库的提取还原工作。在遇到Oracle数据库的系统环境与我们还原库的系统环境不一致的情况,我们应怎么操作呢?下面给大家介绍Oracle11g跨操作系统版本冷备迁移的样例。
在介绍跨操作系统版本冷备前,先了解下Oracle三种最基本的备份方式。
1.冷备份
冷备份是Oracle最简单的一种备份,执行冷备份前必须关闭数据库,然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。
优点:能简单快速地备份。能简单快速地恢复。执行简单。
缺点:必须关闭数据库,不能进行点恢复。
2.热备份
热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24*7不间断运行的关键应用系统。
优点:备份时数据库是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。
缺点:执行过程复杂。由于数据库不间断运行,测试比较困难。不能用操作系统实用工具拷贝打开的文件,必须使用Oracle提供的ocopy工具来拷贝打开的文件。热备份可能造成CPU、I/O过载,需在数据库闲时进行。
3.Export导出数据库对象
冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而Export备份的是数据库对象,因此被称为逻辑备份。
优点:能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。(在关键性数据库取证过程中,经常使用。)
缺点:Export并不是冷备份和热备份的替代工具。冷、热备份可保护介质失效。Export备份可保护用户或应用错误。
冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO LOG文件,将其拷贝到另外的位置。此外冷备份也可以包含对参数文件和口令文件的备份,但是这两种备份是可以根据需要进行选择的。冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程。因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被称为完全的数据库备份。它的优缺点如下所示:
1、优点:
<1>只需拷贝文件即可,是非常快速的备份方法。
<2>只需将文件再拷贝回去,就可以恢复到某一时间点上。
<3>与数据库归档的模式相结合可以使数据库很好地恢复。
<4>维护量较少,但安全性确相对较高。
2、缺点:
<1>在进行数据库冷备份的过程中数据库必须处于关闭状态。
<2>单独使用冷备份时,数据库只能完成基于某一时间点上的恢复。
<3>若磁盘空间有限,冷备份只能将备份数据拷贝到磁带等其他外部存储上,速度会更慢。
<4>冷备份不能按表或按用户恢复。
源环境:
WINDOWS 10操作系统64位
oracle 11g 11.2.0.3.0 64BIT
目标环境:
Redhat 6.4操作系统64位
Oracle 11g 11.2.0.3.0 64BIT(只装软件)
前面我们也说到了,Oracle数据库的冷备份基于的是物理数据库文件,所以我们在备份前,需要了解数据库数据信息存储的几个重要物理文件。
Oracle物理结构由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成。
一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志属于数据库文件;参数文件、口令文件是非数据库文件。
1、数据文件:存储数据的文件。数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。
2、控制文件:包含维护和验证数据库完整性的必要信息。例如:控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件。
控制文件内容有:数据库名、表空间信息、所有数据文件的名字和位置、所有redo日志文件的名字和位置、当前的日志序列号、检查点信息、关于redo日志和归档的当前状态信息。
3、重做日志文件:包含了对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件。
4、跟踪文件及警告日志:跟踪文件是在instance 中运行的每一个后台进程都有一个跟踪文件与之相连。跟踪文件记载后台进程所遇到的重大事件的信息。警告日志是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误。
5、参数文件:包括大量影响Oracle数据库实例功能的设定,例如:数据库控制文件的定位、Oracle用来缓存从磁盘上读取的数据的内存数量、默认的优化程序的选择和数据库文件相关。
6、归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
7、口令文件:认证哪些用户有权限启动和关闭Oracle例程。
基本信息确认
1.查看数据文件路径
命令:select name from v$datafile;
2.查看redo日志文件路径
命令:select member from v$logfile;
3.查看数据库归档状态(确定为非归档模式)
命令:archive log list;
PS:数据库默认为非归档模式,如需要迁移的源库为归档模式,则需要查看归档日志路径并进行迁移,此过程多用于热备份还原,本文就不过多叙述。
1.由于Spfile文件是二进制文件,无法通过文本工具进行编辑,因此需要将源环境SPFILE生成PFILE参数文件,方便在目标环境修改为LINUX文件路径。
Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。可以分为两种类型:
(1)pfile:
初始化参数文件,Oracle9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile默认的名称为"init+例程名.ora"文件路径为"/application/oracle/product/11.2.0/db_1/dbs",这是一个文本文件,可以用任何文本编辑工具打开;
(2)spfile:
服务器参数文件,从Oracle9i开始,Oracle引入了Spfile文件,spfile默认的名称为"spfile+例程名.ora",文件路径为"/application/oracle/product/11.2.0/db_1/dbs",以二进制文本形式存在,不能用vi编辑器对其中参数进行修改,只能通过SQL命令在线修改;
1.1查看当前数据库使用的是不是初始化参数文件启动(VALUE有路径相关值,说明是通过初始化参数文件启动,否则是通过pfile参数文件启动)
命令:show parameter spfile
1.2通过初始化参数文件,创建一个普通参数文件
create pfile=’D:/pfile.ora’ from spfile;
2. 由于控制文件是属于二进制文件,无法通过文本工具进行编辑修改,所以需要从源环境生成控制文件的跟踪文件方便目标环境控制文件重建。
2.1 alter session set tracefile_identifier='bak_control';【为session加上标记,方便查找trace文件】
2.2 alter database backup controlfile to trace;【将当前controlfile文件的创建语句放到了trace文件中】
2.3 select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));【获得当前trace文件生成路径】
2.4 打开路径下的跟踪文件查看
3. 检查所有数据文件路径
Select name from v$datafile;
4. 安装目标环境的数据库软件环境(安装jdk环境、安装依赖包、只安装数据库软件不安装实例及数据库,篇幅有限具体安装步骤就不过多赘述)。
5. 把源环境的数据文件、生成的PFILE参数文件、口令文件、控制文件的跟踪文件、重做日志文件拷贝至目标环境下对应位置。
6. 修改参数文件上所有WINDOWS路径为LINUX路径。
7. 用nomount模式开启库。
命令:Startup pfile=’/路径/pfile.ora’ nomount;
8. 修改控制文件生成的跟踪文件中的所有WINDOWS路径,改为LINUX数据文件、重做日志文件所放置的路径。
9. 执行修改后的创建控制文件命令进入mount模式。(日志没有损坏的话,使用SET1,用noresetlogs,进行介质恢复。日志文件有损坏的话,使用SET2,用resetlogs,进行不完全介质恢复)
10.执行恢复数据库
Recover database;(SET1)
Recover database using backup controlfile until cancel;
AUTO
如果无法找到在线日志文件,请手动指定在线文件路径。(SET2)
11.开启目标库
Alter database open noresetlogs;(SET1)
Alter database open resetlogs;(SET2)
12.测试数据是否正常
来源:盘古石取证