admin 管理员组

文章数量: 1184232


2024年1月15日发(作者:redis不持久化能主从吗)

重装系统后不用重装oracle

windows是很脆弱的系统,可能装完没几天就会崩溃,如果你在windows下装有oracle,那怎么来恢复这个数据库呢?

一种方法是重装数据库后用imp来导入原来的数据,但使用这种方法的前提是你有以前

数据的备份,并且这种方法除了许多严重不足的地方,例如备份过旧有,可能会遗失许多数据、引入数据太长等。

一般情况下我们可以采用重用原来的数据库的方法来恢复。在讲步骤前先说说这种方法的原理。

数据库与实例对应,当数据库服务启动后,我们可以用sqlplus方法相连接

到一个空闲的例程,当执行startup启动数据库时,首先会在%oracle_home%/database下找

当前sid对应的参数文件(pfile或者spfile)和密码文件,然后启动例程;接着根据参数文

件记录的信息找到控制文件,读取控制文件的信息,这就是mount数据库了;最终根据控制文

件的信息关上数据库。这个过程相等于对数据库着了一次热备份的恢复正常。下面的具体步骤:(我们假设原库的所有有关文件都存有)

1、安装数据库软件

只需加装同版本的数据库软件即可,不须要建立数据库。最出色加装在和原来数据库同样的%oracle_home%下,免得还要修正参数文件路径等。(轻易全面覆盖原来的oracle即可)再次特别强调,只加装软件,不建立数据库,否则将数据库软件加装在同样的目录下旧的部分数据文件可以被全面覆盖,这样数据库也无法被恢复正常了。

2、新建一个实例在cmd窗口执行

oradim-new-sidoracle9i(我的就是thams)

注意,这个sid名称最好与你以前的sid一样,否则在启动的数据需要指明pfile,并且需

必须扩建密码文件,比较麻烦。(当然,如果你就不敢用原来的sid也可以,把参数文件、密码文件的名称都换成与崭新sid对应的名称)。

3、启动数据库

略过以上两步,就可以启动数据库了。

用netstart检查oracle服务是否已经启动,如果oracle服务没有启动,则在cmd下运行如下命令:

netstartoracleserviceoracle9i(我的就是oracleservicethams)然后预设必要的环境变量,在cmd窗口运转setoracle_sid=oracle9i(我的thams)接着相连接数据库sqlplusstartup

如果正常的话,数据库应该就能起来了4、启动监听lsnrctlstart5、后续工作

经过以上几步后,基本上就可以采用oracle了,但是采用出来有点不方便,例如每次在cmd中启动数据库都须要先setoracle_sid、在本机相连接数据库也都须要加之@tnsname等。我们可以修正注册表,嵌入oracle_sid的信息,防止这些麻烦。

在注册表的hkey_local_machinesoftwareoracle下新建字符串值,名称为oracle_sid,值为oracle9i。

也可以将以下内容维持成一个后缀名为reg的文件(文件名随便起至),然后双击,即可将信息复制到注册表中。

windowsregistryeditorversion5.00

[hkey_local_machinesoftwareoracle]

注意,以上步骤都是在%oracle_home%、%oracle_sid%都与原库一样的情况下讨论的,虽然%oracle_home%和%oracle_sid%可以与原库不一样,但为了减少麻烦和出错的几率,建议不要改变则两个值。

遗留问题:plsql链接就是可能将提示信息如下,因为没设置编码的原因

解决方案:内容来自17jquery

运转中:输出:regedit,修正注册表。

注册表路径为hkey_local_machinesoftware

wow6432nodeoraclekey_oraclient11g_home1,新建“字符串值(s)”项为“nls_lang”,值“simplifiedchinese_16gbk”。一起jquery,17jquery

如果os版本为32位,则要修改:找到oraclekey_oraclient11g_homexx,右键新建“字符串值(s)”项为“nls_lang”,值为“simplifiedchinese_16gbk。


本文标签: 数据库 文件 启动 数据