一、 冷备份的概念

    冷备份是指在数据库关闭状态下所做的物理拷贝,也称脱机备份。

    适合于非归档模式下的备份,而且也只能采用这种方式备份。

二、 需要备份的文件

    必须备份的文件:

      数据文件和控制文件

     可以备份的文件:

       重做日志文件、临时文件、二进制参数文件(spfile)、口令文件

        

三、 冷备份的步骤

    1. 找到所需要的备份文件

    2. 正常关闭数据库

    3. 备份文件到指定的备份路径下

    4. 重新启动数据库

 

四、 冷脚本的写法

4.1 查看文件位置及状态

  --查看实例和数据库的相关信息     

SQL> select instance_name,version,status,archiver,database_status from v$instance;

INSTANCE_NAME     VERSION       STATUS    ARCHIVE DATABASE_STATUS
---------------- ----------------- ------------ ------- -----------------
dbsrv1 11.2.0.1.0 OPEN STOPPED ACTIVE
SQL> select dbid,name,log_mode from v$database;

      DBID NAME      LOG_MODE
---------- --------- ------------
294555525 DBSRV1 NOARCHIVELOG

  --查看数据文件及状态信息

SQL> col file_name  for a50
SQL> col tablespace_name for a15
SQL> select file_name,tablespace_name,status,online_status from dba_data_files; FILE_NAME            TABLESPACE_NAME STATUS ONLINE_
-------------------------------------------------- --------------- --------- -------
/opt/oracle/app/oradata/dbsrv1/users01.dbf      USERS   AVAILABLE ONLINE
/opt/oracle/app/oradata/dbsrv1/undotbs01.dbf     UNDOTBS1 AVAILABLE ONLINE
/opt/oracle/app/oradata/dbsrv1/sysaux01.dbf   SYSAUX  AVAILABLE ONLINE
/opt/oracle/app/oradata/dbsrv1/system01.dbf   SYSTEM  AVAILABLE SYSTEM
/opt/oracle/app/oradata/costctl/COSTCTL_TBS.dbf COSTCTL_TBS AVAILABLE ONLINE
/opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF DEV_DATA AVAILABLE ONLINE
/opt/oracle/app/oradata/pdms/PDMS_DATA.dbf PDMS_DATA AVAILABLE ONLINE

  查看数据文件

SQL> col name for a50
SQL> select file#, name, status from v$datafile; FILE# NAME             STATUS
---------- -------------------------------------------------- -------
1 /opt/oracle/app/oradata/dbsrv1/system01.dbf SYSTEM
2 /opt/oracle/app/oradata/dbsrv1/sysaux01.dbf ONLINE
3 /opt/oracle/app/oradata/dbsrv1/undotbs01.dbf ONLINE
4 /opt/oracle/app/oradata/dbsrv1/users01.dbf ONLINE
5 /opt/oracle/app/oradata/costctl/COSTCTL_TBS.dbf ONLINE
6 /opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF ONLINE
7 /opt/oracle/app/oradata/pdms/PDMS_DATA.dbf ONLINE

  --查看临时文件

SQL> col name for a60
SQL> select name from v$tempfile; NAME
------------------------------------------------------------
/opt/oracle/app/oradata/dbsrv1/temp01.dbf
/opt/oracle/app/oradata/costctl/COSTCTL_TBS_temp.dbf
/opt/oracle/app/oradata/pdms/PDMS_DATA_TEMP.dbf

  --查看日志文件

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------
/opt/oracle/app/oradata/dbsrv1/redo03.log
/opt/oracle/app/oradata/dbsrv1/redo02.log
/opt/oracle/app/oradata/dbsrv1/redo01.log

  --查看控制文件

SQL> select name from v$controlfile;

NAME
------------------------------------------------------------
/opt/oracle/app/oradata/dbsrv1/control01.ctl
/opt/oracle/app/flash_recovery_area/dbsrv1/control02.ctl

  --查看参数文件

SQL> show parameter pfile

NAME                     TYPE        VALUE
------------------------------------ ---------- ------------------------------
spfile string /opt/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/spfiledbsrv1.ora

4.2 进行备份

方案一、

--创建备份目录

SQL> ho mkdir -p /u03/backup/coolbak

--使用连接符生成复制文件命令

SQL> select 'ho cp' ||name|| '/u03/backup/coolbak' from v$controlfile;

'HOCP'||NAME||'/U03/BACKUP/COOLBAK'
--------------------------------------------------------------------------------
ho cp/opt/oracle/app/oradata/dbsrv1/control01.ctl/u03/backup/coolbak
ho cp/opt/oracle/app/flash_recovery_area/dbsrv1/control02.ctl/u03/backup/coolbak
 SQL> save /tmp/tmpbak.sql;   --将上面的输入保存为tmpbak.sql
Created file /tmp/tmpbak.sql

编辑coolbak.sql

注意修改密码文件的位置和pfile的名字

    set feedback off
set heading off
set verify off
set trimspool off
set pagesize 0
set linesize 200
define dir = '/u03/backup/coolbak'
define script = '/u03/backup/coolbak.txt'
define passwd = '/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl'
spool &script
select 'ho cp -pv ' || name || ' &dir' from v$controlfile
union all
select 'ho cp -pv ' || name || ' &dir' from v$datafile
union all
select 'ho cp -pv ' || member || ' &dir' from v$logfile
union all
select 'ho cp -pv ' || name || ' &dir' from v$tempfile
/
create pfile = '&dir/initorcl.ora' from spfile;
ho cp -pv &passwd &dir
spool off
shutdown immediate
ho mkdir -pv /u03/backup/coolbak
ho rm -rf /u03/backup/coolbak/*
start &script
startup

--执行coolbak.sql

SQL> @/tmp/coolbak.sql;

--执行过程及数据库启动略

--启动后查看备份的文件

需要注意的是这种方式不利于恢复,得去寻找恢复的目录最好在cool后建立与数据库相同的目录。

冷恢复的步骤

脱机恢复到原来位置的步骤:

  1. 如果数据库没有关闭,需关闭数据库

  2. 将所有的备份数据文件和备份控制文件复制到数据库原来的位置

  3. 也可以将其它所有的备份文件复制到数据库原来的位置(该操作不是必须的)

  4. 重启数据库

 恢复成功后,数据库即恢复到上一次的备份,恢复所需要的时间就是复制文件所需要的时间

脱机恢复到非原来位置的步骤:

  有时候储存数据文件的磁盘坏了,可能需要改变数据文件的恢复位置

  1. 将备份文件恢复到正常的磁盘上

  2. 将数据库加载为mount状态(startup mount)

  3. alter database rename file 'u01/xxx.DBF'  to 'u02/xxx.DBF'    (u01磁盘损坏)

  4. alter database open

Oracle冷备份及其恢复的更多相关文章

  1. oracle冷备份后恢复

    本地恢复 在运行中输入cmd. 在cmd界面中输入sqlplus/nolog进入sql*plus. 以dba身份连接数据库conn sys/你设定的密码 as sysdba. 输入:shutdown ...

  2. 将oracle冷备份恢复到另外一个数据库实例中

    因更换服务器需要将Oracle数据库转移到另外台Oracle中.说明: 1.测试环境为:windows server2003 和 oracle 10g. 2.2台服务器安装的程序目录一样,数据目录不一 ...

  3. oracle冷备份

    windows环境下Oracle数据库冷备份和恢复 1.点击开始菜单的“运行”,输入sqlplus/nolog 2.在弹出的命令行窗口以sysdba身份登陆,要输入:系统用户名/登陆密码@数据库实例名 ...

  4. Oracle-11g 基于 NBU 的 rman 冷备份及恢复

    html,body { font-size: 15px } body { font-family: Helvetica, "Hiragino Sans GB", "微软雅 ...

  5. rman恢复方案和oracle异机恢复

    这篇文章主要介绍了rman恢复方案和oracle异机恢复,需要的朋友可以参考下 注:①恢复的前提是已经做好备份②完全恢复数据库是数据库遇到故障,在恢复时候没有丢失任何已经提交事物数据的恢复不完全恢复数 ...

  6. Oracle 冷备份详解【实战案例】

    Oracle 冷备份详解 --准备工作 select * from v$database; select file_name from dba_data_files; create tablespac ...

  7. Oracle冷备份和热备份的实践(原创)

    参考本博转发的备份博文和上传的文件,进行了冷热备份实践并进行了记载以备以后查阅,本次实践的环境是win10,安装了oracle11g 一.冷备份 1.cmd->sqlplus /nolog 2. ...

  8. oracle数据库表恢复到特定时间点

    某一张表被应用软件里误操作把数据都清空了,现在想恢复到清空之间,比如2013年8月13日14点以前,应该怎样操作? 通过这个问题可以引发一系列的知识点串联. 1.如果开启闪回可以使用闪回表. 怎样查看 ...

  9. Oracle 备份、恢复单表或多表数据步骤

    Oracle 备份.恢复单表或多表数据步骤,适用于 Oracle 8.9.10.        *备份单表或多表数据: exp user/password@server file=filefullpa ...

随机推荐

  1. python:Xml

    <data> <country name="Liechtenstein"> <rank updated="yes">2< ...

  2. java 基本类型之间的转换

    基本数据类型从低级到高级是:byte  short int long float double ,char 类型比int 类型之后的都要低 下面通过一个例子说明: import javax.swing ...

  3. 【转】java编译错误 程序包javax.servlet不存在javax.servlet.*

    转载地址:http://blog.163.com/gis_warrior/blog/static/1936171732012811071642/ 编译:javac Servlet.java 出现 软件 ...

  4. U3D UGUI学习2 - Canvas

    Canvas Render Mode - UGUI不像NGUI,它没有UI摄像机.但有时候需要做相机动画就要调出来. 在Canvas里设置第二个选项即可调出. Pixel Perferct - 这个似 ...

  5. Python学习笔记-Day3-python关键字

    1.and 逻辑与 2.assert 判断某个条件是否为真,如果为假,抛出错误 3.break跳出for,while循环 4.class 类定义 5.continue 跳出本次循环,执行下次循环 6. ...

  6. JAVA基础知识之JVM-——使用反射生成并操作对象

    Class对象可以获取类里的方法,由Method对象表示,调用Method的invoke可以执行对应的方法:可以获取构造器,由Constructor对象表示,调用Constructor对象的newIn ...

  7. HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4528 小明系列故事——捉迷藏 Time Limit: 500/200 MS (Java/O ...

  8. Web应用程序状态管理(上)

    一:概述Http协议使用的是无状态连接:客户浏览器与服务器建立连接-发出请求-得到 响应-关闭连接.话句话说,连接只针对一个请求/响应.由于连接不会持久保留 所以容器认不出做第二个请求的客户与做前一个 ...

  9. 怎样解决:未找到路径“……”的控制器或该控制器未实现 IController?

    就是要加上new{area=""},比如下面的: @{Html.RenderAction("Cartsummary","ShoppingCart&qu ...

  10. iOS中3种正则表达式的使用与比较

    正则表达式在用户注册和登录中应用很广,通过正则表达式可以判断用户输入的数据正确与否. 在iOS4.0以前开发者一般是通过谓词(NSPredicate)和加入正则表达式的第三方库(如:RegexKitL ...