Oracle 冷备份(一)

2014-11-24 18:00:13 · 作者: · 浏览: 3

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


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



一、冷备份


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


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



二、步骤


首先在运行的库中得到数据库运行的所有的物理文件位置,然后在计划内关闭数据库(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/ORACL