Oracle如何实现冷备份及其恢复

这篇文章主要为大家展示了“Oracle如何实现冷备份及其恢复”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle如何实现冷备份及其恢复”这篇文章吧。

创新互联专注于新吴网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供新吴营销型网站建设,新吴网站制作、新吴网页设计、新吴网站官网定制、小程序开发服务,打造新吴网络公司原创品牌,更为您提供新吴网站排名全网营销落地服务。

一、冷备份的概念

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

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

二、需要备份的文件

    必须备份的文件:

数据文件和控制文件

可以备份的文件:

重做日志文件、临时文件、二进制参数文件(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

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

 294555525DBSRV1    NOARCHIVELOG

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

SQL> col file_name  for a50

SQL> col tablespace_name for a15

SQL>selectfile_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

Oracle如何实现冷备份及其恢复

查看数据文件

Oracle如何实现冷备份及其恢复

SQL> col name for a50

SQL>selectfile#, 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

Oracle如何实现冷备份及其恢复

--查看临时文件

Oracle如何实现冷备份及其恢复

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

Oracle如何实现冷备份及其恢复

--查看日志文件

Oracle如何实现冷备份及其恢复

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

Oracle如何实现冷备份及其恢复

--查看控制文件

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的名字

Oracle如何实现冷备份及其恢复

    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

    unionall

    select'ho cp -pv '|| name ||' &dir'from v$datafile

    unionall

    select'ho cp -pv '|| member ||' &dir'  from v$logfile

    unionall

    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

Oracle如何实现冷备份及其恢复

 --执行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如何实现冷备份及其恢复”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


当前文章:Oracle如何实现冷备份及其恢复
文章分享:http://hbruida.cn/article/igdpdc.html