说明:在现在这家公司以前,从来没有接触过oracle数据库,但现在的公司没有DBA,开发人员也对Oracle的管理不熟悉,所以也只能,边学边用,从安装到建库等!前段时间被Oracle内存管理折腾得够呛(24G的物理内存,跑了两个开发测试环境下的oracle就被占满,还出现死机的情况),不过还好,终于搞定,也没有在出现过情况。现在基本的运行没有问题了,则需要考虑进一步的问题了,备份与恢复!如下的操作我结合网上资料进行的测试,欢迎大家指正:
这里我主要记录这两天测试的冷备份:
一、冷备份(环境:Windows+oracle10g):
方法一:管理数据库的情况下备份
备份脚本:
--connectdatabase
connectsys/你设定的密码assysdba;
-
-shutdowndatabase
shutdownimmediate;
--CopyDatafile
Hostxcopyd:\Oracle\product\10.2.0\oradata\orcl\*.dbfd:\DbBakup;
--CopyControlfile
Hostxcopyd:\Oracle\product\10.2.0\oradata\orcl\*.ctld:\DbBakup;
--CopyLogfile
Hostxcopyd:\Oracle\product\10.2.0\oradata\orcl\*.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:\Oracle\product\10.2.0\拷贝admin和oradata进行备份,恢复后居然也正常。求解!
二、恢复
场景一、本地完全恢复:
应用场景:原来数据库主机硬件故障导致数据库无法使用,需要恢复一台完全一样的数据库。此方法主要适合小型应用,特别是只有一台数据库服务器而没有集的情况。
恢复时间:我在虚拟化环境下测试,数据库文件在10GB左右,恢复时间20分钟。
恢复方法:
1.建立一台与原数据库服务器完全一样的服务器,IP、计算机名等都使用原数据库的。
2.建立跟原来SID一样的数据库(实例)。
3.将上述备份方法二中的备份的admin和oradata文件夹复制对应路径下,覆盖原来的文件。
4.重新启动服务器,使用sqlplus等测试连接。如果连接不上,多半是服务没有启动的缘故。
场景二、异地恢复
注:把备份的文件拷贝到另一台机器上(确保与备份机器安装的是同一版本oracle,并且安装目录相同)。
正常恢复步骤:
1.在运行中输入cmd。
2.在cmd界面中输入sqlplus/nolog进入sql*plus。
oracle登录命令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.在接下来的信息中按自己的数据库信息输入。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论