共计 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 行业资讯频道!