数据的安全性一直是企业中非常重要的一环,随着数据量不断增大,数据的备份与恢复工作也变得越来越重要。而对于Oracle数据库表的备份,更是关系到企业的核心利益。一旦遇到数据丢失或者损坏,不仅会带来巨大的损失,更会严重影响企业的正常运营。因此,Oracle数据库表备份的重要性已经成为了企业不可忽视的关键点。
为什么需要备份Oracle数据库表?
在现实生活中,数据的损坏或丢失情况时有发生。Oracle数据库表作为一个企业中非常核心的数据存储方式,因此数据表的损坏或丢失对企业的影响极大。以下是几种数据丢失或损坏的情况:
1. 误删除:在日常维护中,管理员对数据进行误操作,导致数据丢失。
2. 数据库故障:服务器硬件故障、自然灾害等导致的数据丢失,可能会因为无备份而造成不可逆转的后果。
3. 网络攻击:网络黑客利用各种漏洞进行攻击,造成了数据的丢失,导致企业业务难以正常运作。
为了避免以上原因导致的数据丢失,备份Oracle数据库表是非常重要的。
备份Oracle数据库表的方法
备份方法有很多种,本篇文章主要介绍两种主流的备份方式:手动备份和自动备份。
1. 手动备份:
在大多数情况下,手动备份可能是最被广泛使用的数据库备份方法。管理员通过手动执行备份命令,将数据表拷贝到备份目录下。手动备份可以制定备份策略,并能保证备份的完整性和准确性。
2. 自动备份:
自动备份是指通过定期备份计划自动执行备份任务。通常采用定时任务方式进行备份,管理员只需设定备份周期和相关参数,系统将在预定的时间自动完成备份操作。自动备份不需要手动干预,无需人工操作,避免了管理员忘记备份带来的不必要风险。
如何选择合适的备份策略?
在备份Oracle数据库表时,管理员需要了解不同的备份策略。以下是三个不同的备份策略:
1. 完全备份:
完全备份是指将整个数据库完全备份一次。这种备份方式需要相对较长的时间,但是可以恢复整个数据库。完全备份的优势在于恢复时只需使用全量备份文件,保证了数据的完整性。
2. 增量备份:
增量备份是指在上一次备份的基础上,对新存储的内容进行备份。这种备份方式需要相对较短的时间,备份文件也相对较小。增量备份的优势在于备份速度快,所备份的数据量小,即使出现磁盘故障,也可以保证较近期的数据得到恢复。
3. 差异备份:
差异备份是指在上一次备份的基础上,对新增的数据部分进行备份。与增量备份相似,差异备份可以节省备份文件的存储空间,备份速度也比完全备份快。不过在恢复时,需要先进行上一次的完全备份,然后再逐个差异备份恢复数据,代价就是需要更多的时间来恢复备份。
更佳实践
为了实现备份的更佳实践,我们需要根据实际情况选择最适合企业的备份策略。如果数据量比较大,备份时间较长,可以采用增量备份和差异备份策略,以便在备份期间减少对生产环境的影响。另外,在备份之前,还应该测试备份的完整性和恢复性,确保备份可以成功且完整地恢复。此外,还必须将备份数据定期从生产环境移至备份服务器,并确保备份服务器的数据安全性。
结论
备份Oracle数据库表对于保护企业数据至关重要。通过选择合适的备份策略,可以大大提高你的数据安全性,减少数据丢失的风险,并可以保障全球各地的数据随时可用。无论采用哪种备份方式,需要遵循更佳实践,测试备份的完整性和恢复性,以确保恢复不受限制。因此,备份Oracle数据库表是每一个管理员在数据管理过程中不可或缺的一个环节。
相关问题拓展阅读:
- 请问oracle数据库的数据库备份有几种方式?哪种更好用
- oracle 备份
请问oracle数据库的数据库备份有几种方式?哪种更好用
Oracle的数据备份主要有冷备、热判茄姿备和数据导出。针对不同的数据安全要求,可以采用不同的备份方式,目前生产系统比较常用的是热备份,安全性较高。
下面是种方式的优缺点介绍:
冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。
优点:能简单快速地备份。能简单快速地恢复。执行简单。
缺点:必须关闭数据库,只能恢复备份时的状态。
热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。
优点:备份时数据库可以是打开的。热备份可以恢复到数据库的某一时点。
缺点:执行相对比较复杂。由于数据库不间断运行,热备份可能造成CPU、I/O过载,应在数据库不太忙时进行。
冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而export备份的是数据库对象,因此被称为逻辑备份。
优点:能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。
缺点:只能恢复到导出时的状态。export并不是冷备份和热备份掘绝的替代工具纳袭。
冷、热备份可保护介质失效。export备份可保护用户或应用错误。
Oracle数据库备份方式
Oracle的内核提供数据库的备份和恢复机制,SQL*DBA按表空间进行数据的备份和恢复。Oracle提供两种方式:备份恢复和向前滚动,保证意外故障恢复数据库的一致性和完整性。
1. 备份恢复方式
对数据库的某个一致状态建立副本,并储存在介质上脱机保存,以此作为数据库恢复的基础。现以Oracle实用程序Export/Import来介绍备份恢复方式。
Export/Import是Oracle提供的两个互补性程序,即卸载和装载。它们既完成数据库与操作系统蔽慧文件的互为转载,同时可以有效地回收数据库的碎片,提供不同版本间Oracle 数据传宏哪答送的手段,进行不同用户间的数据传送。
Export数据卸载,将数据从Oracle写到指定的操作系统文件进行备份。卸载的对象、内容与数量有三种模式:TABLE MODE(表模式)、USER MODE(用户模式)、FULL DATABASEM ODE(所有数据库模式)。使用方式既可用交互方式,也可采用命令行方式,以”关键字=值” 将所需信息在命令行中逐一描述来进行卸载。Export要求用户具有CONNECT或DBA特权。
Import与Export互逆,将操作系统文件重新装载至Oracle数据库中,使用方式如Expo rt。缓坦使用者要求具有CONNECT和RESOURCE特权,且可选择部分或全部装入。
Export/Import非常方便,系统开销小,它的限制是输出的操作系统文件采用专门的压缩方式存放,仅提供给Import使用。
也可采用SQL*PLUS和SQL*LOADER实用工具进行备份。使用SQL*PLUS的SPOOL命令通过脱机定向输出,使用PLUS格式化结果,形成指定格式的ASCII文件,需要时可用SQL*LOADER 进行加载。它的方便之处是ASCII文件可以编辑,可方便地加载至其他数据库(如FoxPro、 Sybase中)。
2. 向前滚动方式
Oracle提供向前滚动方式,使建立备份后成功的事务不会丢失。恢复的基础是数据库的某个一致性状态(即方式1完成的备份恢复),恢复的依据是存档的重作记录文件。启动重作记录文件方法如下:
(1) 启动Oracle;
(2) 连接Oracle:CONNECT SYSTEM/PASSWORD;
(3) 启动ARCHIVE LOG。
出现介质故障时,可用SQL*DBA的RECOVER命令,利用存档的重作记录文件恢复一个或多个表空间。RECOVER命令对DATABASE或TABLASPACE进行恢复。前者要求SQL*DBA START UP已被排斥方式装载且未被打开;后者对无活跃回退段的表空间执行脱机,要求数据库已装载且被打开。
由于向前滚动方式恢复的依据是存档的重作记录文件,因而系统开销大,但恢复的是建立备份以后的成功事务,所以恢复的程度更高、更完备。
IT JOB
oracle 备份
手工备份
单表备份(前提库的结构是一样的)
导出:
开始钮->运行->输入CMD->进入DOS界面
EXP 用户名/密码@连接字符串 GRANTS=Y TABLES=(stu) file=C:\文件名.DMP
导入:
开始钮->运行->输入CMD->进入DOS界面
IMP 用户名/密码@连接字符串 IGNORE=Y TABLES=(stu) FULL=N file=C:\文件名.DMP
其中stu是你要的表名
全库导
导出:
开始钮->运行->输入CMD->进入DOS界面
EXP 用户名/密码@连接字符串 FULL=Y file=C:\文件名.DMP
导入:
开始钮->运行->输入CMD->进入DOS界面
IMP 用户名/密码@连接字符串 FULL=Y file=C:\文件名.DMP
自动备份
建议一:
利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。:
1,批处理文件backup.bat\.
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log
将生成oracle.dmp文件
exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log
将生成oracle星期一.dmp文件,则每周循环保留一个备份文件,共7个备份文件循环
2,添加一个任务计划
利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行d:\oracle\backup.bat
3、以后每天将在目录中生成形如“oracle.dmp和oracle.log”的备份和日志文件。
说明:
1、%date%的值在不同档知的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。%date:~4,10% 是返回日期函数,~后的之一个参数是要截取的起始位置(从0开始),第慎歼二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。
2、如需要准确的时间做为文件名,请用%time%函数,参数同上。
建议二:
@echo off
set filename=e:\data_bak\%date:~8,2%日
exp userid=user/pass@esdata file=%filename%.dmp owner=user INDEXES=y grants=y constraints=y compress=y log=%filename%.log
rar a %filename%.rar %filename%.*
del %filename%.dmp
del %filename%.log
放计划任务里面定时执行,
文件名以日期的day部分来命名
备份后调用rar进行压缩
这样可以保存一个月的历史数据
注意:需要把program files/winrar目录下的rar.exe拷贝到系统system32目录下
如果是以星期命名,则需要将set filename=e:\data_bak\%date:~8,2%日修改为
set filename=e:\data_bak\%date:~0,3%
建议三:
以下为ORACLE 自动备份批处理文件内容,请配合任务计划实现
@ECHO OFF
SET BACKPATH=d:\
ECHO 准备备份数据库
REM 7天行孝消一个循环
IF EXIST %BACKPATH%\ONE GOTO ONE
IF EXIST %BACKPATH%\TWO GOTO TWO
IF EXIST %BACKPATH%\THREE GOTO THREE
IF EXIST %BACKPATH%\FOUR GOTO FOUR
IF EXIST %BACKPATH%\FIVE GOTO FIVE
IF EXIST %BACKPATH%\SIX GOTO SIX
IF EXIST %BACKPATH%\SEVEN GOTO SEVEN
ECHO E > %BACKPATH%\ONE
:ONE
SET BACKPATH_FULL=%BACKPATH%\ONE
REN %BACKPATH%\ONE TWO
GOTO BACK
:TWO
SET BACKPATH_FULL=%BACKPATH%\TWO
REN %BACKPATH%\TWO THREE
GOTO BACK
:THREE
SET BACKPATH_FULL=%BACKPATH%\THREE
REN %BACKPATH%\THREE FOUR
GOTO BACK
:FOUR
SET BACKPATH_FULL=%BACKPATH%\FOUR
REN %BACKPATH%\FOUR FIVE
GOTO BACK
:FIVE
SET BACKPATH_FULL=%BACKPATH%\FIVE
REN %BACKPATH%\FIVE SIX
GOTO BACK
:SIX
SET BACKPATH_FULL=%BACKPATH%\SIX
REN %BACKPATH%\SIX SEVEN
GOTO BACK
:SEVEN
SET BACKPATH_FULL=%BACKPATH%\SEVEN
REN %BACKPATH%\SEVEN ONE
GOTO BACK
:BACK
EXP TESTUSER/TEST FILE=%BACKPATH_FULL%.DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT
建议四:
RMAN TARGET=RMAN/RMAN@ORCL >oraStartup.log 调用sql文件
pause 执行完sql文件以后暂停,看信息
echo 恢复完毕!
编写oraStartup.sql
conn 用户名/密码@数据库 as sysdba
select * from table1;
quit;
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以”00″打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\” where filed1 like ‘00%’\”
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面 加上 compress=y 就可以了
数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
导入
基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
andymao009说的很好,只是你出了什么问题?还是不会备份?
Oracle数据库的备份
包括两个文件脚本 (ora_bak.sh move.sh)和一个定时crontab
ora_ bak.sh 内容如下
#!/bin/sh
ORACLE_HOME=/opt/oracle/product/9.2.0.4;export ORACLE_HOME
ORACLE_BASE=/opt/oracle;export ORACLE_BASE
ORACLE_SID=ilearndb;export ORACLE_SID
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib;export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:/usr/in:$PATH;export PATH
rq=`date +%y_%m_%d_%H_%M_%S`
echo $rq
exp test/test file=/opt/oracle/backup/temp/烂空examusr01_$rq.dmp log=/opt/oracle/backup/logs/bkplog_$rqowner=ilearn
tar-cvzf /opt/oracle/backup/temp/examusr01_$rq.tar.gz /opt/oracle/backup/temp/examusr01_$rq.dmp&&rmf /opt/oracle/backup/temp/examusr01_$rq.dmp&&echo “Congratulations,your dmp file has been compressed correctly at $rq!” >> /opt/oracle/backup/logs/bkplog_$rq.log
exit 0
move.sh内容如下(作用 本地备份 + 异地ftp备燃历此份)
#!/bin/sh
ftp -n
open 10.10.140.87
user test test
binary
hash
cd /opt/oracle/racexambkp
lcd /opt/oracle/backup/temp
prompt
mput *
close
bye
!
mv /opt/oracle/backup/temp/* /opt/oracle/backup/
我有工具,需要的话可以联系我
关于oralce 数据库表备份的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。