【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《重装系统后不用重装oracle》,欢迎阅读!
WINDOWS是很脆弱的系统,可能装完没几天就会崩溃,如果你在WINDOWS下装有 oracle,那怎么来恢复这个数据库呢?
一种方法是重装数据库后用IMP来导入原来的数据,但使用这种方法的前提是你有以前
数据的备份,并且这种方法还有许多不足的地方,如备份过旧,可能会丢失许多数据、导入数据 太长等。
一般情况下我们可以采用重用原来的数据库的方法来恢复。在讲步骤前先说说这种方法的 原理。
数据库与实例对应,当数据库服务启动后,我们可以用SQLPLUS "/AS SYSDBA"方法连接 到一个空闲的例程,当执行startup启动数据库时,首先会在%ORACLE_HOME%/database下找 当前SID对应 的参数文件(PFILE或者SPFILE)和密码文件,然后启动例程;接着根据参数文 件记录的信息找到控制文件,读取控制文件的信息,这就是mount数 据库了;最终根据控制文 件的信息打开数据库。这个过程相当于对数据库着了一次冷备份的恢复。 下面的具体步骤:(我们假设原库的所有相关文件都存在)
1、安装数据库软件
只需安装同版本的数据库软件即可,不需要创建数据库。最好安装在和原来数据库同样的 %ORACLE_HOME%下,省得还要修改参数文件路径等。(直接覆盖原来的oracle即可) 再次强调,只安装软件,不创建数据库,否则将数据库软件安装在同样的目录下旧的部分数据文 件会被覆盖,这样数据库也不能被恢复了。
2、新建一个实例 在cmd窗口执行
oradim -new -sid oracle9i (我的是thams)
注意,这个SID名称最好与你以前的SID一样,否则在启动的数据需要指明pfile,并且需 要重建密码文件,比较麻烦。(当然,如果你就不想用原来的SID也可以,把参数文件、密码 文件的名称都改成与新SID对应的名称)。
3、启动数据库
做完以上两步,就可以启动数据库了。
用net start 检查oracle服务是否已经启动,如果oracle服务没有启动,则在cmd下运行如 下命令:
net start oracleserviceoracle9i (我的是oracleservicethams)
然后设定必要的环境变量,在cmd窗口运行 set ORACLE_SID=oracle9i(我的thams) 接着连接数据库 sqlplus "/as sysdba" startup
如果正常的话,数据库应该就能起来了 4、启动监听 lsnrctl start 5、后续工作
经过以上几步后,基本上就可以使用oracle了,但是使用起来有点不方便,如每次在cmd 中启动数据库都需要先SET ORACLE_SID、在本机连接数据库也都需要加上@TNSNAME等。 我们可以修改注册表,添加ORACLE_SID的信息,避免这些麻烦。
在注册表的HKEY_LOCAL_MACHINESOFTWAREORACLE下新建字符串值,名称为ORACLE_SID,值为oracle9i。
也可以将以下内容保持成一个后缀名为reg的文件(文件名随便起),然后双击,即可将信息导入到注册表中。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREORACLE] "ORACLE_SID"="oracle9i"
注意,以上步骤都是在%ORACLE_HOME%、%ORACLE_SID%都与原库一样的情况下讨论的,虽
然%ORACLE_HOME%和%ORACLE_SID%可以与原库不一样,但为了减少麻烦和出错的几率,建议不要改变则两个值。
遗留问题: plsql 链接是可能提示如下,因为 没有设置编码的原因
解决方案:
运行中:输入:regedit,修改注册表。
注册表路径为HKEY_LOCAL_MACHINESOFTWARE Wow6432NodeORACLEKEY_OraClient11g_home1,新建“字符串值(S)”项为“NLS_LANG”,值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。
如果OS版本为32位,则要修改:找到ORACLEKEY_OraClient11g_homexx,右键新建“字符串值(S)”项为“NLS_LANG”,值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
本文来源:https://www.wddqxz.cn/453a41ad8462caaedd3383c4bb4cf7ec4afeb68f.html