当前位置:文档之家› 冷恢复oracle数据库步骤流程

冷恢复oracle数据库步骤流程

Oracle 数据库冷还原、冷恢复详情目的:帮助更多的程序员、dba、项目负责人在遇到灾难性的oracle数据库崩溃时少走弯路、准确、快速恢复oracle数据库。

步骤:废话少说,但我还是啰嗦一句:作为技术人员,请对马虎说不,处事不惊,静下心来认认真真看看别人写下来的相关文档,这对自己受益匪浅。

一、前提条件:在冷恢复oracle 数据库之前,前提条件是非常重要的,想自己少走点弯路,务必明确每一个点。

必须明确的、所需要用到的文件如下:1、控制文件,数据文件,日志文件用户文件。

文件在Oracle安装目录\oradata\全局数据库名称文件夹\ 下(包括控制文件,数据文件,日志文件、用户文件等都在里面)。

如:E:\Oracle\oradata\orcl\ 如下图列出所有文件,此处控制文件一个,还有一个在另外一个地方下面会说到,数据库文件5个,日志文件3个,用户文件若干个或者没有(没有也没关系):注意:还有一个控制文件control02.ctl位置在:Oracle安装目录\flash_recovery_area\全局数据库名文件夹\ 下面如:E:\Oracle\flash_recovery_area\orcl\control02.ctl2、初始化参数文件、密码文件。

在Oracle安装目录\product\11.2.0\dbhome_1\database\下面。

注意:数据库的初始化参数文件记载着数据库的所有初始化信息,此文件的正确性是整个数据库能否恢复关键。

后面在重建新实例时会详细说明如何编辑初始化参数文件。

密码文件是二进制加密的数据文件,千万不能使用文本打开手动编辑,否则密码文件将失效,将可能无法还原用户数据库。

初始化参数文件位置:Oracle安装目录\product\11.2.0\dbhome_1\database\init数据库_sid.ora。

如:E:\Oracle\product\11.2.0\dbhome_1\database\INITorcl.ORA密码文件位置:Oracle安装目录\product\11.2.0\dbhome_1\database\pwd数据库_sid.ora。

如:E:\Oracle\product\11.2.0\dbhome_1\database\PWDorcl.ora。

3、必须要明确知道数据库名db_name、全局数据库名db_unique_name、数据库实例名SID 。

事实上这三个数据库关键名称前两个都已加载在初始化参数文件,使用文本可以打开查看到参数db_name=’xxx’和db_unique_name=’xxx’,数据库实例名SID就是初始化参数文件名称去掉init部分,如E\Oracle\product\11.2.0\dbhome_1\database\initorcl.ora 文件orcl就是SID。

二、安装数据库服务端如果是在原机器上。

请重新安装oracle服务端。

如果是在新机器上。

若已经安装有完好可用的oracle数据库服务端,可以忽略这第二步,直接到第三步,要是现版本和原来的数据库版本不一致不妨先到第三步试试版本不一致的情况是否可以行(答案等着你来回答)。

不放心的可以卸载后重新安装一致的版本。

注:要是时间比较紧迫,建议安装数据库服务端时先不要创建默认数据库orcl,这样可以快很多(节省时间)。

很多人说安装oracle数据库服务端版本要与原数据库版本一致,所以最好安装跟原来版本一致的oracle服务端。

至于版本不一致的情况打个疑问号(谁要是有时间可以试试,并把答案在评论上发表出来,感激不尽)。

三、创建实例注:安装好oracle数据库服务端后,打开开始菜单找到oracle安装主目录下面有若干工具,其中有一个叫Database Configuration Assistant 。

创建oracle实例有两种方式第一种方式是使用oracle服务端工具Database Configuration Assistant 简称DBCA工具创建。

打开DBCA工具,选中创建数据库--下一步--输入全局数据库名db_unique_name 和SID。

这里的全局数据库名db_unique_name 和SID必须跟步骤一第(3)点明确的名称一样(不一样是不行的,原因不详,待解答)。

下一步--.......根据提示直到完成功创建实例。

注:如果第一种创建实例不成功或者出现什么错误可以重新创建或者使用第二种方式。

第一种方式创建实例名是有限制的,如果你的实例名包含下划杠_字符,DBCA拒绝创建这种命名规则,所有你得使用第二种。

第二种方式是使用cmd命令手工创建。

(请参考:/s/blog_9f6d353701014x53.html ,文章说的非常详细)必须以管理员运行命令窗cmd:如:oradim -new -sid orcl -startmode m 。

其中orcl就是需要重建的sid数据库实例名,输入命令按回车提示创建成功。

不管使用第一种还是第二种,只要是成功创建实例后执行下面的步骤,进入了数据库恢复的最关键的操作:1、因为数据库实例已经创建,所以系统服务列表右键我的计算机--管理--服务和程序--服务-- 会多几个oracleservice数据库_SID这个服务,需要先关闭它只要是Oracle 开头你创建的SID结尾都关闭。

2、建立存放数据库文件夹、并拷贝文件相应的文件到文件夹(1)建立存放控制文件,数据文件,日志文件用户文件文件夹。

可以在Oracle主目录下建立\oradata\全局数据库名文件夹\如:E:\Oracle\oradata\orcl\并且把第一大步骤一所说的原数据库路径:Oracle安装目录\oradata\全局数据库名称文件夹\ 下面所有的文件(包括控制文件,数据文件,日志文件用户文件)都拷贝到这里。

(oradata\全局数据库名\ 文件夹也可以不在Oracle主目录里面创建,自定义路径是没问题的,不受Oracle安装主目录的限制,但是需要配置初始化参数。

这跟数据库初始化参数文件相关,需要手动配置初始化参数里面相应的路径,配置参数文件是非常关键的一步)并且把旧数据库:Oracle安装目录\flash_recovery_area\全局数据库名文件夹\ control02.ctl 拷贝到新数据库:Oracle安装目录\flash_recovery_area\全局数据库名文件夹\ control02.ctl。

Oracle安装目录\flash_recovery_area\全局数据库名文件夹\ 这个文件夹同样需要手动创建,路径和文件夹名必须一样。

(2)手动建立数据库必要文件夹在Oracle安装目录\admin\全局数据库名\ 文件夹下建立下图列出来的的文件夹(共6个)3、拷贝数据库初始化参数文件、密码文件到Oracle安装目录\product\11.2.0\dbhome_1\database\文件夹下面。

将旧数据库安装目录下面的:Oracle安装目录\product\11.2.0\dbhome_1\database\init数据库_sid.ora文件、pwd数据库_sid.ora文件拷贝(init数据库_sid.ora 和pwd数据库_sid.ora)至新数据库目录Oracle安装目录\product\11.2.0\dbhome_1\database\ 下面同时将密码文件也拷贝过来4、配置数据库初始化参数文件参数完成第3步后,使用文本编辑器打开init数据库_sid.ora文件,匹配参数是否正确。

下面是完整的orcl实例的参数文件参数:需要特别注意的地方红色标记的地方,其他的参数在不清楚的情况下保持不变。

orcl.__db_cache_size=637534208orcl.__java_pool_size=16777216orcl.__large_pool_size=16777216orcl.__oracle_base='Oracle安装的跟目录'#ORACLE_BASE set from environment orcl.__pga_aggregate_target=687865856orcl.__sga_target=1006632960orcl.__shared_io_pool_size=0orcl.__shared_pool_size=318767104orcl.__streams_pool_size=0*.audit_file_dest='Oracle安装的跟目录\admin\全局数据库名\adump'*.audit_trail='db'*.compatible='11.2.0.0.0'*.control_files='数据库控制文件control01.ctl完整路径’,'数据库控制文件control02.ctl完整路径'*.db_block_size=8192*.db_domain=''*.db_name='数据库名'*.db_unique_name='全局数据库名'*.db_recovery_file_dest='Oracle安装的跟目录\flash_recovery_area'*.db_recovery_file_dest_size=4102029312*.diagnostic_dest='Oracle安装的目录路径'*.dispatchers='(PROTOCOL=TCP) (SERVICE=数据库SID XDB)'*.memory_target=1680867328*.open_cursors=300*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.undo_tablespace='UNDOTBS1'例如:orcl.__db_cache_size=637534208orcl.__java_pool_size=16777216orcl.__large_pool_size=16777216orcl.__oracle_base='E:\Oracle'#ORACLE_BASE set from environmentorcl.__pga_aggregate_target=687865856orcl.__sga_target=1006632960orcl.__shared_io_pool_size=0orcl.__shared_pool_size=318767104orcl.__streams_pool_size=0*.audit_file_dest='E:\Oracle\admin\orcl\adump'*.audit_trail='db'*.compatible='11.2.0.0.0'*.control_files='E:\Oracle\oradata\orcl\control01.ctl','E:\Oracle\flash_recovery_area\orcl\co ntrol02.ctl'*.db_block_size=8192*.db_domain=''*.db_name='orcl'*.db_unique_name='orcl'*.db_recovery_file_dest='E:\Oracle\flash_recovery_area'*.db_recovery_file_dest_size=4102029312*.diagnostic_dest='E:\Oracle'*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcl XDB)'*.memory_target=1680867328*.open_cursors=300*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.undo_tablespace='UNDOTBS1'初始化参数文件配置路径必须保证完全正确,否则数据库无法启动,无法连接。

相关主题