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

61次阅读
没有评论

共计 4402 个字符,预计需要花费 12 分钟才能阅读完成。

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

———-
——— ————

 294555525 DBSRV1  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

查看数据文件

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

– 查看临时文件

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

  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

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计4402字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)