Oracle冷备份

一、冷备份

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

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

二、步骤

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

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

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

三、冷备脚本的写法

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

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

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

SQL>selectinstance_name,version,status,archiver,database_statusfromv$instance;

INSTANCE_NAMEVERSIONSTATUSARCHIVE DATABASE_STATUS

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

orcl10.2.0.1.0OPENSTOPPED ACTIVE

SQL>selectdbid,name,log_modefromv$database;

DBIDNAMELOG_MODE

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

1242732291 ORCLNOARCHIVELOG

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

SQL>selectfile_name,tablespace_name,status,online_statusfromdba_data_files;

FILE_NAMETABLESPACE STATUSONLINE_

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

/u01/app/oracle/oradata/orcl/undotbs01.dbfUNDOTBS1AVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/system01.dbfSYSTEMAVAILABLE SYSTEM

/u01/app/oracle/oradata/orcl/sysaux01.dbfSYSAUXAVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/users01.dbfUSERSAVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/example01.dbfEXAMPLEAVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/tbs1_1.dbfTBS1AVAILABLE ONLINE

/u01/app/oracle/oradata/orcl/tbs1_2.dbfTBS1AVAILABLE ONLINE

--查看数据文件

SQL>selectnamefromv$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>selectnamefromv$tempfile;

NAME

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

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

--查看日志文件

SQL>selectmemberfromv$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>selectnamefromv$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'fromv$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

Createdfile/tmp/tmpbak.sql

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

setfeedbackoff

setheadingoff

setverifyoff

settrimspooloff

setpagesize 0

setlinesize 200

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

define script='/tmp/coolbak.sql'

spool&script

select'ho cp '||name||' &dir'fromv$controlfile

unionall

select'ho cp '||name||' &dir'fromv$datafile

unionall

select'ho cp '||member||' &dir'fromv$logfile

unionall

select'ho cp '||name||' &dir'fromv$tempfile

/

createpfile='&dir/initorcl.ora'fromspfile;

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

spooloff

shutdownimmediate

start&script

ho rm&script

startup

--执行tmpbak.sql

SQL>@/tmp/tmpbak.sql;

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

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

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

control01.ctlorapworclredo2b.rdosystem01.dbfusers01.dbf

control02.ctlredo1a.rdoredo3a.rdotbs1_1.dbf

example01.dbfredo1b.rdoredo3b.rdotbs1_2.dbf

initorcl.oraredo2a.rdosysaux01.dbfundotbs01.dbf

四、总结

优点

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

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

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

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

缺点

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值