失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Oracle19c数据库如何冷备份 Oracle数据库的备份方法-冷备份(转)

Oracle19c数据库如何冷备份 Oracle数据库的备份方法-冷备份(转)

时间:2024-06-19 17:13:45

相关推荐

Oracle19c数据库如何冷备份 Oracle数据库的备份方法-冷备份(转)

Oracle数据库的备份方法-冷备份(转)[@more@]冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。

能简单快速地备份。能简单快速地恢复。执行简单。

必须关闭数据库。

不能进行点恢复。

热备份

热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。

备份时数据库可以是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。

执行过程复杂。由于数据库不间断运行,测试比较困难。不能用操作系统实用工具拷贝打开的文件。必须使用Oracle提供的ocopy工具来拷贝打开的文件。热备份可能造成CPU、I/O过载,应在数据库不太忙时进行。

Export导出数据库对象

冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而export备份的是数据库对象,因此被称为逻辑备份。

能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。

export并不是冷备份和热备份的替代工具。冷、热备份可保护介质失效。export备份可保护用户或应用错误。

3、冷备份方案的实施

3.1 冷备份数据库的步骤

(1)关闭数据库;

(2)备份所有相关的数据库文件:初始化参数文件、控制文件(可用select name from v$controlfile;列出所有控制文件)、数据文件(可用select name from v$datafile;列出所有数据文件)、Redo日志(可用select member from v$logfile;列出所有redo日志文件)、归档的Redo日志(可用select sequence#,first_time from v$loghist;列出所有归档redo日志文件的顺序号和产生时间)。

3.2 冷备份数据库的脚本文件coldbak.cmd

rem Oracle数据库冷备份脚本文件名coldbak.cmd

rem 用于Windows NT/2000 平台,已经过严密的测试,大家可以试验!!!

rem 该脚本执行后,在c:emp目录中产生db_restrict.sql、db_shut.sql、db_start.sql、

rem cold.sql、cold.cmd等5个脚本文件,冷备份的核心命令在cold.cmd中。

rem 设置SID

set oracle_sid=tmq

rem 设置初始化参数文件

set my_pfile=e:oracleora81databaseinittmq.ora

set my_ifile=E:OracleADMINmqpfileinit.ora

rem 设置归档日志目录

set my_archive_dir=E:OracleORADATAmqarchive

rem 设置internal帐户的密码

set my_password=oracle

rem 建立临时目录

mkdir c:emp

set my_temp=c:emp

rem 建立备份目录,该目录必须有足够大的空间用于存放数据库的备份文件

mkdir e:ackup

set my_bakdir=e:ackup

rem ==== (1) create script file db_restrict.sql=====

echo connect internal/%my_password%; > %my_temp%db_restrict.sql

echo shutdown immediate; >> %my_temp%db_restrict.sql

echo startup restrict pfile=%my_pfile%; >>%my_temp%db_restrict.sql

echo exit >> %my_temp%db_restrict.sql

rem ==== (2) create script file db_shut.sql =====

echo connect internal/%my_password%; >%my_temp%db_shut.sql

echo shutdown immediate; >>%my_temp%db_shut.sql

echo exit >>%my_temp%db_shut.sql

rem ==== (3) create script file db_start.sql =====

echo connect internal/%my_password%; >%my_temp%db_start.sql

echo startup pfile=%my_pfile%; >>%my_temp%db_start.sql

echo exit >>%my_temp%db_start.sql

svrmgrl @%my_temp%db_restrict.sql

rem ==== (4) create script file cold.sql =====

echo set heading off; >%my_temp%cold.sql

echo set feedback off; >>%my_temp%cold.sql

echo spool %my_temp%cold.cmd; >>%my_temp%cold.sql

echo 在这里设计冷备份的命令,备份控制文件、数据文件和日志文件

echo select 'copy ' ^|^| name ^|^| ' %my_bakdir%' from v$controlfile; >>%my_temp%cold.sql

echo select 'copy ' ^|^| member ^|^| ' %my_bakdir%' from v$logfile; >>%my_temp%cold.sql

echo select 'copy ' ^|^| file_name ^|^| ' %my_bakdir%' from dba_data_files; >>%my_temp%cold.sql

echo spool off; >>%my_temp%cold.sql

echo exit >>%my_temp%cold.sql

rem ===== (5) run cold.sql to genrate cold.cmd ========

sqlplus internal/%my_password% @%my_temp%cold.sql

echo 在这里设计冷备份的命令,备份参数文件、归档日志文件

echo. >> %my_temp%cold.cmd

echo copy %my_pfile% %my_bakdir% >> %my_temp%cold.cmd

echo copy %my_ifile% %my_bakdir% >> %my_temp%cold.cmd

echo. >> %my_temp%cold.cmd

echo copy %my_archive_dir%*.* %my_bakdir% >> %my_temp%cold.cmd

rem ===== shut down database ========

svrmgrl @%my_temp%db_shut.sql

rem ====== run cold.cmd to perform the cold backup 开始执行冷备份 ======

call %my_temp%cold.cmd

rem ====== start up the database =======

svrmgrl @%my_temp%db_start.sql

echo ===== the cold backup is completed!!! ======

来自 “ ITPUB博客 ” ,链接:/10617542/viewspace-962366/,如需转载,请注明出处,否则将追究法律责任。

如果觉得《Oracle19c数据库如何冷备份 Oracle数据库的备份方法-冷备份(转)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。