2022年Oracle数据库的备份方法 .pdf
《2022年Oracle数据库的备份方法 .pdf》由会员分享,可在线阅读,更多相关《2022年Oracle数据库的备份方法 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、逻辑备份:EXP,IMP 物理备份:1.脱机备份:拷贝数据文件,日志文件,控制文件,(参数文件,可选)2.联机备份:备份任何运行在ARCHIVELOG 方式下的数据库(提供了完全的时间点的恢复)Oracle 数据库的备份方法1、引言Oracle 数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统。比如使用export实用程序导出数据库对象、使用 Oracle 备份数据库、使用 Oracle 对称复制、使用 Oracle 并行服务器、使用 Oracle 冷备份、使用Oracle 热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要
2、求。本文主要就用export实用程序导出数据库对象、Oracle 冷备份、Oracle 热备份这三种最基本的备份方法进行详细的探讨,分析各自的优缺点和适用的场合,并给出自动执行这些备份方案的脚本文件。2、三种备份方案的比较备份方案综述优点缺点冷备份冷备份是Oracle 最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。能简单快速地备份。能简单快速地恢复。执行简单。必须关闭数据库。不能进行点恢复。热备份热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。备
3、份时数据库可以是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。执行过程复杂。由于数据库不间断运行,测试比较困难。不能用操作系统实用工具拷贝打开的文件。必须使用Oracle 提供的 ocopy 工具来拷贝打开的文件。热备份可能造成CPU、I/O过载,应在数据库不太忙时进行。Export 导出数据库对象冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而export备份的是数据库对象,因此被称为逻辑备份。能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。export并不是冷备份和热备份的替代
4、工具。冷、热备份可保护介质失效。export备份可保护用户或应用错误。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -3、冷备份方案的实施3.1 冷备份数据库的步骤(1)关闭数据库;(2)备份所有相关的数据库文件:初始化参数文件、控制文件(可用select name from v$controlfile;列出所有控制文件)、数据文件(可用select name from v$datafile;列出所有数据文件)、Redo日志(可用select member from v$logfile;列出所有redo 日志文件)、归档的Redo日志(可用select sequenc
5、e#,first_time from v$loghist;列出所有归档 redo 日志文件的顺序号和产生时间)。3.2 冷备份数据库的脚本文件coldbak.cmd rem Oracle数据库冷备份脚本文件名coldbak.cmd rem 用于 Windows NT/2000 平台,已经过严密的测试,大家可以试验!rem 该脚本执行后,在 c:temp目录中产生db_restrict.sql、db_shut.sql、db_start.sql、rem cold.sql、cold.cmd 等 5 个脚本文件,冷备份的核心命令在cold.cmd 中。rem 设置 SID set oracle_sid
6、=tmq rem 设置初始化参数文件set my_pfile=e:oracleora81databaseinittmq.ora set my_ifile=E:OracleADMINtmqpfileinit.ora rem 设置归档日志目录set my_archive_dir=E:OracleORADATAtmqarchive rem 设置 internal帐户的密码set my_password=oracle rem 建立临时目录mkdir c:temp set my_temp=c:temp rem 建立备份目录,该目录必须有足够大的空间用于存放数据库的备份文件mkdir e:backup s
7、et my_bakdir=e:backup 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
8、_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
9、%my_temp%db_start.sql svrmgrl%my_temp%db_restrict.sql 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 17 页 -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
10、|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=sq
11、lplus 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%
12、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!=4、热备份方案的实施4.1 热备份数据库的前提条件:数据库运行在归档模式Oracle 数据库的redo 日志记录在数据库上进行的所有活动。LGWR 后台进程以一种循环方式写这些日志文件,从第一个redo 日志到下一个,直到该组的最后
13、一个,然后由从第一个日志写起。在非归档模式下,当循环写到最后一个日志文件后,就重写第一个日志。因此,非归档模式下唯一的数据库恢复办法就是使用冷备份。在归档模式下,当redo 日志满时,一个ARCH 后台进程就读取全部redo 日志,然后将其写到归档日志。因此,可以使用热备份和点恢复。在归档日志模式下,如果归档日志目的空间已满,数据库活动将暂时停止,只有释放一些空间后,数据库才能继续运行。通常,background_dump_destination将产生一个跟踪文件来显示归档方面的问题。Oracle 数据库安装默认运行在非归档模式,通过以下步骤可以从非归档模式转换为归档模式:(1)编辑参数文件i
14、nit.ora,设置以下参数#设置数据库自动归档名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -log_archive_start=true#设置归档日志文件的目录,该目录必须事先已建立,并有大量可利用的空间log_archive_dest_1=location=%oracle_base%oradata%oracle_sid%archive#设置归档日志文件名的格式。%s表示顺序号,%t表示线程号。log_archive_format=%oracle_sid%T%S.ARC (2)在 svrmgrl上运行以下命令svrmgrlconnect internal/YOUR
15、_PASSWORD svrmgrlshutdown immediate;svrmgrlstartup mount exclusive;svrmgrlalter database archivelog;svrmgrlalter database open;svrmgrlshutdown immediate;(3)执行数据库冷备份当数据库运行在归档模式下,数据库恢复过程要求使用冷备份时,归档日志是必需的。(4)正常启动数据库,并确认数据库运行在归档模式svrmgrl startup;svrmgrl select*from v$database;其 log_mode 会显示数据库是否归档模式svrm
16、grl archive log list;也会显示数据库是否归档模式如果 Oracle 数据库运行在归档模式,当进行数据库维护时,可能需要暂停数据库的归档,在完成维护后,再重新启动归档模式。通过以下步骤可以从归档模式转换为非归档模式:svrmgrlconnect internal/YOUR_PASSWORD svrmgrlshutdown immediate;svrmgrlstartup mount exclusive;svrmgrlalter database noarchivelog;svrmgrlalter database open;svrmgrl select*from v$data
17、base;其 log_mode 会显示数据库是否归档模式svrmgrl archive log list;也会显示数据库是否归档模式4.2 热备份数据库的步骤(1)拷贝 init.ora文件到备份目录(参数文件在数据库启动后处于关闭状态)。(2)将需要备份的某个表空间置于开始备份模式。(3)使用 ocopy.exe 拷贝表空间,然后将该表空间置于结束备份模式中(ocopy.exe 不能用于直接拷贝联机的数据库文件)。(4)对数据库中的每个表空间执行步骤2 和 3(可以通过视图dba_tablespaces和v$datafile查看数据库中有哪些表空间和数据文件)。(5)通过在 svrmgrl上
18、执行 archive log list命令获取当前的日志顺序号,从 oldest online log sequence开始到 current log sequence的联机 redo 日志应该是热备份的一部分。(6)在 svrmgrl上执行 alter system switch logfile;命令来强迫日志切换,以便所有的日志都被归档。(7)使用 alter database backup controlfile to trace;命令获得控制文件的一个备份,可以到%oracle_base%admin%oracle_sid%udump目录中寻找最新的跟踪文件,其中有重建控制文件的全部命令
19、。(8)使用 windows nt的命令从%log_archive_dest%中拷贝归档的日志文件到备份目录。4.3 热备份数据库的脚本文件hotbak.cmd rem Oracle数据库热备份脚本文件名hotbak.cmd 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 17 页 -rem 用于 Windows NT/2000 平台,已经过严密的测试,大家可以试验!rem 该脚本执行后,在c:temp目录中产生minlog.sql、minlog.cmd、rem tblspc01.sql、tblspc02.sql、control01.sql、control02.sql、rem m
20、axlog.sql、maxlog.cmd、archive.sql、archive.cmd等 10 个脚本文件。rem 设置 SID set oracle_sid=tmq rem 设置初始化参数文件set my_pfile=e:oracleora81databaseinittmq.ora set my_ifile=E:OracleADMINtmqpfileinit.ora rem 设置归档日志目录set my_archive_dir=E:OracleORADATAtmqarchive rem 设置 internal帐户的密码set my_password=oracle rem 建立临时目录mkd
21、ir c:temp set my_temp=c:temp rem 建立备份目录,该目录必须有足够大的空间用于存放数据库的备份文件mkdir e:backup set my_bakdir=e:backup rem=(1)开始备份参数文件=echo Backing up the init.ora file copy%my_pfile%my_bakdir%copy%my_ifile%my_bakdir%rem=(2)创建 minlog.sql脚本获取最小的online redo日志顺序号 =echo set heading off;%my_temp%minlog.sql echo set feedb
22、ack off;%my_temp%minlog.sql echo spool%my_temp%minlog.cmd;%my_temp%minlog.sql echo select set minlog_value=|min(sequence#)from v$log where upper(status)=upper(INACTIVE);%my_temp%minlog.sql echo spool off;%my_temp%minlog.sql echo select exit;from dual;%my_temp%minlog.sql echo exit;%my_temp%minlog.sql
23、 rem=(3)run minlog.sql to genrate minlog.cmd=sqlplus internal/%my_password%my_temp%minlog.sql rem=(4)run minlog.cmd to set minlog_value=call%my_temp%minlog.cmd rem=(5)创建 tblspc01.sql脚本用于生成备份数据文件的脚本文件tblspc02.sql=echo set heading off;%my_temp%tblspc01.sql echo set feedback off;%my_temp%tblspc01.sql e
24、cho spool%my_temp%tblspc02.sql;%my_temp%tblspc01.sql echo select connect internal/%my_password%;from dual;%my_temp%tblspc01.sql echo select alter tablespace|tablespace_name|begin backup;from dba_tablespaces;%my_temp%tblspc01.sql echo select host start/wait ocopy|file_name|%my_bakdir%;from 名师资料总结-精品资
25、料欢迎下载-名师精心整理-第 5 页,共 17 页 -dba_data_files;%my_temp%tblspc01.sql echo select alter tablespace|tablespace_name|end backup;from dba_tablespaces;%my_temp%tblspc01.sql echo spool off;%my_temp%tblspc01.sql echo select exit;from dual;%my_temp%tblspc01.sql echo exit;%my_temp%tblspc01.sql rem=(6)run tblspc01
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Oracle数据库的备份方法 2022 Oracle 数据库 备份 方法
限制150内