admin 管理员组

文章数量: 887030


2024年1月15日发(作者:chartcontrol散点图)

说明:在现在这家公司以前,从来没有接触过oracle数据库,但现在的公司没有DBA,开发人员也对Oracle的管理不熟悉,所以也只能赶鸭子上架,边学边用,从安装到建库等!前段时间被Oracle内存管理折腾得够呛(24G的物理内存,跑了两个开发测试环境下的oracle就被占满,还出现死机的情况),不过还好,终于搞定,也没有在出现过情况。现在基本的运行没有问题了,则需要考虑进一步的问题了,备份与恢复!如下的操作我结合网上资料进行的测试,欢迎大家指正:

这里我主要记录这两天测试的冷备份:

一、冷备份(环境:Windows+oracle10g):

方法一:管理数据库的情况下备份

备份脚本:

--connectdatabase

connectsys/你设定的密码assysdba;

--shutdowndatabase

shutdownimmediate;

--CopyDatafile

Hostxcopyd:Oracleproduct10.2.0oradataorcl*.dbfd:DbBakup;

--CopyControlfile

Hostxcopyd:Oracleproduct10.2.0oradataorcl*.ctld:DbBakup;

--CopyLogfile

Hostxcopyd:Oracleproduct10.2.0oradataorcl*.logd:DbBakup;

--startupdatabase

startup;

注:以上代码拷贝到记事本中保存为*.sql即为冷备份脚本。其中控制文件(*.ctl),数据文件(*.dbf),日志文件(*.log)的路径依自己的路径修改。“d:DbBakup”为备份路径,可以自己修改。要备份所有的数据文件,可能有的dbf并不是都在一个目录中,这个就要在EM中查看一下所有的数据文件路径了。

冷备份操作步骤:

1.在运行中输入cmd。

2.在cmd界面中输入sqlplus/nolog进入sql*plus。

3.以dba身份连接数据库connsys/你设定的密码assysdba。

4.执行冷备份操作。@冷备份角本路径。

方法二:不关闭数据库的冷备份

网上的资料都说进行冷备份需要关闭数据库,但我在实际测试中,直接进入目录d:Oracleproduct10.2.0拷贝admin和oradata进行备份,恢复后居然也正常。求解!

二、恢复

场景一、本地完全恢复:

应用场景:原来数据库主机硬件故障导致数据库无法使用,需要恢复一台完全一样的数据库。此方法主要适合小型应用,特别是只有一台数据库服务器而没有集群的情况。

恢复时间:我在虚拟化环境下测试,数据库文件在10GB左右,恢复时间20分钟。

恢复方法:

1.建立一台与原数据库服务器完全一样的服务器,IP、计算机名等都使用原数据库的。

2.建立跟原来SID一样的数据库(实例)。

3.将上述备份方法二中的备份的admin和oradata文件夹复制对应路径下,覆盖原来的文件。

4.重新启动服务器,使用sqlplus等测试连接。如果连接不上,多半是服务没有启动的缘故。

场景二、异地恢复

注:把备份的文件拷贝到另一台机器上(确保与备份机器安装的是同一版本oracle,并且安装目录相同)。

正常恢复步骤:

1.在运行中输入cmd。

2.在cmd界面中输入sqlplus/nolog进入sql*plus。

3.以dba身份连接数据库connsys/你设定的密码assysdba。

4.输入:shutdownimmediate。

5.把备份的文件手工逆拷贝到相对应的oracle目录中。

6.在命令窗口中sql>光标处输入:startup。

注:如无法登录EM,请重启oracle服务。以上为正常本机恢复过程。如果异地恢复只执行以上步骤,数据库的主机连接字符串则会是备份机器的主机名。所以我们在异地恢复时除了正常恢复步骤还要重建EM。

重建EM步骤:

建议关闭下EM服务。

1.删除EM

A.在cmd命令窗口输入:emca-reposdrop

B.在接下来的信息中按自己的数据库信息输入。

2.创建EM

A.在cmd命令窗口输入:emca-reposcreate

B.在接下来的信息中按自己的数据库信息输入。

3.配置EM

A.在cmd命令窗口输入:emca-configdbcontroldb

B.在接下来的信息中按自己的数据库信息输入。


本文标签: 数据库 备份 恢复 没有 测试