DBA_Oracle冷备份案例脚本本法(案例)

2014-08-10 BaoXinjian

一、摘要



二、冷备份



--======================

-- Oracle 冷备份

--======================

一、冷备份

数据库在关闭状态下完成所有物理系统文件拷贝的过程,也称脱机备份

适合于非归档模式下,数据库处于一致性状态

二、步骤

首先在运行的库中得到数据库运行的所有的物理文件位置,然后在计划内关闭数据库(shutdown)

再执行拷贝物理文家到备份路径或备份设备

备份完成后立即启动数据库让其提供正常的服务

三、冷备脚本的写法

首先应该在相关视图里查出数据库的数据文件,日志文件,控制文件,临时文件所在的位置

注意:不要直接把oradata下的cp就行了,因为生产库里各个文件通常分布在不同的磁盘,不同的地方,所以在去视图里获得真实路径

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

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

INSTANCE_NAME    VERSION           STATUS       ARCHIVE DATABASE_STATUS

---------------- ----------------- ------------ ------- -----------------

orcl             10.2.0.1.0        OPEN         STOPPED ACTIVE

SQL> select dbid,name,log_mode from v$database;

DBID NAME      LOG_MODE

---------- --------- ------------

1242732291 ORCL      NOARCHIVELOG

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

SQL> select file_name,tablespace_name,status,online_status from dba_data_files;

FILE_NAME                                               TABLESPACE STATUS    ONLINE_

------------------------------------------------------- ---------- --------- -------

/u01/app/oracle/oradata/orcl/undotbs01.dbf              UNDOTBS1   AVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/system01.dbf               SYSTEM     AVAILABLE SYSTEM

/u01/app/oracle/oradata/orcl/sysaux01.dbf               SYSAUX     AVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/users01.dbf                USERS      AVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/example01.dbf              EXAMPLE    AVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/tbs1_1.dbf                 TBS1       AVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/tbs1_2.dbf                 TBS1       AVAILABLE ONLINE

--查看数据文件

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/orcl/system01.dbf

/u01/app/oracle/oradata/orcl/undotbs01.dbf

/u01/app/oracle/oradata/orcl/sysaux01.dbf

/u01/app/oracle/oradata/orcl/users01.dbf

/u01/app/oracle/oradata/orcl/example01.dbf

/u01/app/oracle/oradata/orcl/tbs1_1.dbf

/u01/app/oracle/oradata/orcl/tbs1_2.dbf

--查看临时文件

SQL> select name from v$tempfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/orcl/temp01.dbf

--查看日志文件

SQL> select member from v$logfile;

MEMBER

------------------------------------------------------------

/u01/app/oracle/oradata/orcl/redo2a.rdo

/u01/app/oracle/oradata/orcl/redo2b.rdo

/u01/app/oracle/oradata/orcl/redo1a.rdo

/u01/app/oracle/oradata/orcl/redo3a.rdo

/u01/app/oracle/oradata/orcl/redo3b.rdo

/u01/app/oracle/oradata/orcl/redo1b.rdo

--查看控制文件

SQL> select name from v$controlfile;

NAME

------------------------------------------------------------

/u01/app/oracle/oradata/orcl/control01.ctl

/u01/app/oracle/oradata/orcl/control02.ctl

--创建备份目录

SQL> ho mkdir /u01/app/oracle/coolbak

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

SQL> select ‘ho cp ‘ || name || ‘ /u01/app/oracle/coolbak‘ from v$controlfile;

‘HOCP‘||NAME||‘/U01/APP/ORACLE/COOLBAK‘

----------------------------------------------------------------------------------

ho cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/coolbak

ho cp /u01/app/oracle/oradata/orcl/control02.ctl /u01/app/oracle/coolbak

SQL> save /tmp/tmpbak.sql;   --将上面的输入保存为tmpbak.sql

Created file /tmp/tmpbak.sql

SQL> ho vim /tmp/tmpbak.sql   --编辑tmpbak.sql,将下面的内容输入到tmpbak.sql

set feedback off

set heading off

set verify off

set trimspool off

set pagesize 0

set linesize 200

define dir = ‘/u01/app/oracle/coolbak‘

define script = ‘/tmp/coolbak.sql‘

spool &script

select ‘ho cp ‘ || name || ‘ &dir‘ from v$controlfile

union all

select ‘ho cp ‘ || name || ‘ &dir‘ from v$datafile

union all

select ‘ho cp ‘ || member || ‘ &dir‘  from v$logfile

union all

select ‘ho cp ‘ || name || ‘ &dir‘ from v$tempfile

/

create pfile = ‘&dir/initorcl.ora‘ from spfile;

ho cp /u01/app/oracle/10g/dbs/orapworcl &dir

spool off

shutdown immediate

start &script

ho rm &script

startup

--执行tmpbak.sql

SQL> @/tmp/tmpbak.sql;

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

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

SQL> ho ls /u01/app/oracle/coolbak

control01.ctl  orapworcl   redo2b.rdo    system01.dbf   users01.dbf

control02.ctl  redo1a.rdo  redo3a.rdo    tbs1_1.dbf

example01.dbf  redo1b.rdo  redo3b.rdo    tbs1_2.dbf

initorcl.ora   redo2a.rdo  sysaux01.dbf  undotbs01.dbf

四、总结

优点

冷备模式下概念易于理解,即将需要备份的文件复制到安全的位置

操作比较简单,不需要太多的干预

容易恢复到某个时间点上(只需将文件再拷贝回去)

能与归档方法相结合,作数据库“最新状态”的恢复。

缺点

备份时,数据库必须处于一致性关闭状态

只能提供到某一时间点的恢复

备份时速度比较慢,尤其是数据量大性能影响比较大

不能实现基于表和用户级别的数据恢复

********************作者:鲍新建********************

时间: 2024-09-30 06:40:16

DBA_Oracle冷备份案例脚本本法(案例)的相关文章

DBA_Oracle冷备份案例脚本本法(案例)(数据库最基本备份方式)

2014-08-10 BaoXinjian 一.摘要 1. 冷备份 数据库在关闭状态下完成所有物理系统文件拷贝的过程,也称脱机备份 适合于非归档模式下,数据库处于一致性状态 2. 步骤 首先在运行的库中得到数据库运行的所有的物理文件位置,然后在计划内关闭数据库(shutdown) 再执行拷贝物理文家到备份路径或备份设备 备份完成后立即启动数据库让其提供正常的服务 3. 总结 - 优点 冷备模式下概念易于理解,即将需要备份的文件复制到安全的位置 操作比较简单,不需要太多的干预 容易恢复到某个时间点

DBA_Oracle冷备份(案例)

2014-08-10 BaoXinjian 一.摘要 二.冷备份 三.热备份 ********************作者:鲍新建******************** DBA_Oracle冷备份(案例)

bash 脚本参数案例总结

bash 脚本参数案例总结 案例1.通过命令行参数给定两个数字,输出其中较大的数值: 方法1:如下 #!/bin/bash #Name: #Version: #Type: #Date: #Author #Email: if [ $# -lt 2 ];then echo "Two intergers." fi if [ $1 -ge $2 ];then echo "Max is $1" else echo "Max is $2" fi 方法2:如下

DBA_Oracle冷备份和热备份的处理(概念)

2014-07-27 BaoXinjian 一.摘要 1. 冷备份 冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件.控制文件.联机REDO LOG文件,将其拷贝到另外的位置. 此外冷备份也可以包含对参数文件和口令文件的备份,但是这两种备份是可以根据需要进行选择的. 冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程. 因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被成为完全的数据库备份. 2. 热备份 热备份是在数据库运行的情况下,采用archive log m

《死亡晚餐派对·真实医学探案故事集》:一些相对罕见的病原体、化学物品、药品致病的案例和这些案例得到明确诊断、找到具体原因的过程。三星推荐

作者概括本书的主题是“当人类遇到病原体”.实际讲的是一些相对罕见的病原体.化学物品.药品致病的案例和这些案例得到明确诊断.找到具体原因的过程. 不如预期的有趣.大部分的案例,都有疾病控制.公共卫生领域的研究人员出场去查找原因.过程经常比较曲折,但是不要期望会想侦探悬疑类小说那么曲折. 作者在描述医学神探们工作的过程中,会对相关疾病做许多涉及到的医学知识做科普,可以作为一本科普书来看. 书中讲了传染病史上著名的给导致多人致病的“伤寒玛丽”被发现的过程中的许多细节. 本书英文原版出版于2009年,不

[源码]Condition的原理,简单案例(ArrayBlockingQueue),复杂案例(LinkedBlockingQueue).

源代码解析 Re'entrantLock lock = new ReentrantLock(fair); Condition   notEmpty = lock.newCondition(); //返回内部类 AbstractQueuedSyncronizer.ConditionObject 各自维护了两个队列.一个是阻塞同步队列 syncQueue 双向队列,一个是条件等待队列. Condition.await两个作用.1.放入同步队列 park 2.realse锁,3等待别人获取锁acqui

自动化运维:(3)写一个简单的Shell脚本(案例)

一.需求 1.test.sh 脚本执行时候需要添加参数才能执行 参数和功能详情如下: 参数 执行效果 start 启动中... stop 关闭中... restart 重启中... * 脚本帮助信息... 2.参数的数量有限制,只能是1个,多余一个会提示脚本的帮助信息 3.帮助信息使用函数来实现 信息内容:脚本 test.sh 使用方式: test.sh [ start|stop|restart ] 二.知识点分析 1.zonghe.sh 脚本执行时候需要添加参数才能执行 脚本传参.case语句

【Linux脚本学习案例】shell脚本多通道并发执行存储过程

使用shell脚本开启多个子任务并发调用存储过程,存储过程按照通道处理数据,提高效率: 外层调用脚本: #!/bin/sh #-------------------------------------------------------------------- # Fuction:调用脚本 # Version: 1.0 #-------------------------------------------------------------------- . ~/.profile . /we

8-Shell的整数表达式介绍-实践及企业案例脚本剖析

整数二元比较操作符 在[]以及test中使用的比较符 在(())和[[]]中使用的比较符 说明 -eq ==或者= equal的缩写,相等 -ne != not equal的缩写,不相等 -gt > 大于greater than -ge >= 大于等于greater equal -lt < 小于类似less than -le <= 小于等于less equal 举例: [[email protected] ~]# [ 3 -eq 3 ]&&echo 1||echo