当我们常用一个数据库时,总想要数据库的内容是合理的、正确地的,但由于计算机系统的故障(硬件故障、网络故障、进程
故障和系统故障)影响数据库系统的配置,影响数据库中数据的正确性,甚至毁坏数据库,使数据库中全部或部分数据丢
失。因此当起因上述故障后,借此能再组织起来一个比较简单的数据库,该解决问题叫做数据库恢复原。维持子系统是数据库管理系统
的一个最主要组成部分。稳定下来处置随所牵涉到的故障类型所影响的结构而变化。
二、备份的方法
ORACLE数据库有三种标准的备份。解析/内嵌(EXPORT/IMPORT) 、备份、热备份。
选取备份是一种逻辑备份,这种方法最主要加载一系列的数据库日志,并存储文件中,这些日志的加载与其所处所在位置所谓。
稀备份和热备份是物理备份(也引述低级备份),它就其到组合成数据库的文件,但不慎重考虑逻辑内容。
下面我们分别简述一下这三种备份方法及其特点:
(一)、假定/内嵌(EXPORT/IMPORT)
EXPORT/IMPORT是用来将ORACLE中数据移入/移往数据库。
1、EXPORT将数据库中数据备份成一个二进制系统文件叫做“解析转储文件”(EXPORT DUMP FILE),并将原先转换成数据库读到
不入文件中。
它有三种模式:
a.用户模式:选取用户所有对象以及对象中的数据;
b.所列模式:解析用户所有注记或者选定的表格;
c.整个数据库:假设数据库中所有对象。
它的备份有三种类型:
a.只不过型(COMPLETE EXPORT):备份整个数据库;
b.造就型(COMULATIVE ERPORT):备份上一次获取型备份所偏离的数据;
c.增量型(INCREAMENTAL EXPORT):备份上一次备份后扭曲的数据。
EXPORT 的命令可以交互式开展,各参数的基本含义不知红皮书。
在透过等价备份时我们要回避一点问题,那就是基本概念的一致性,在给定过程 中假定每不读一次就读写一个列于,因而尽管基本概念
是在一个特点时自己开始的,但相异的同上写入的时间各不相同,因此,嵌入开始读书一个表时,此时表中的数据才是等价的数
据,这样当大多数表按内部关键字和外部关键字相互联系时,在推过程中这些相关联表的扭曲就亦会造成了基本概念的不一致
性,要能避免这个,我们可以将基本概念过程事前在不对此表操纵的时候进行时。另外,当ORACLE中RESTRICTEP CONSISTENT 选项就
可以必要选取数据一致性。
2、IMPORT引入:
导向的过程是解析的逆过程,这个命令先载入导出来的嵌入转储二进制文件,并试运行文件,稳定下来对象用户和数据。
IMPORT命令制订的方法和EXPORT方案有关。
1、如果EXPORT所施行的是实际上型方案(FULL)则在IMPORT时所有的数据对象,最主要注记空间,数据文件,用户都会在导向时创
造,但考虑到数据库中的物理布局,预先成立详见空间和用户是精确的。
2、如果EXPORT应用于的是INCREMENTAL/CUMULATIVE方式,则能够预先设置好所列空间、用户、数据文件。
(二):冷水备份
冻备份频发在数据库已经正常重新启动的情况下,当正常停止使用时会包括给我们一个比较简单的数据库。
数据库运用于的每个文件都被备份下来,这些文件仅限于:
☆所有数据文件
☆所有支配文件
☆所有联机REDO LOG 文件
☆INIT.ORA文件(可选)
值得注意的是凝备份必须是数据库重新启动的情况下顺利完成,当数据库开着的时候,指派数据库文件系统备份强制执行。
并作凝备份一般步骤是:
1:正常封闭要备份的实例(instance);
2: 备份整个数据库到一个目录
3:启动数据库
1: SQLDBA>connect internal
SQLDBA>shutdown normal
2: SQLDBA>! cp <file> <backup directory>
或
SQLDBA>!tar cvf /dev/rmt/0 /wwwdg/oracle
3: SQLDBA>startup
(三)热备份(ACHIRELOG)
数据库无需二十四小时行驶,而且随时有新的数据转为.数据被窃将影响整个公司.引入archivelog mode物理备份.
?设置数据库为automatic archivelog mode,
#su - oracle
%svrmgrl
svrmgrl>connect internal
svrmgrl>startup mount
svrmgrl>alter database archivelog
svrmgrl>shutdown
svrmgrl>exit
%vi initoracle7.ora
投身于log_archive_start = true # if you want automatic archiving
log_archive_dest = $ORACLE_HOME/dbs/arch
log_archive_format = log%s.arc
%dbstart
%ps -ef|grep arch
oracle 1743 1 0 15:20:20 ? 0:00 ora_arch_oracle7
录:oracle database is in automatic archivelog mode
?full offline entire database backup, 当数据库初始进行后 这份备份是将来备份的基础。它备有了所有与数据库有关
的拷贝.
%dbshut
%cp /oracle/oradata/oracle7/system.dbf
/oracle/oradata/oracle7/rbs.dbf
/oracle/oradata/oracle7/temp.dbf
/oracle/oradata/oracle7/tools.dbf
/oracle/oradata/oracle7/users.dbf
/oraclecle/app/oracle/product/7.3.2/dbs/application.dbf
/oracle/app/oracle/product/7.3.2/dbs/apptmpsp.dbf
/oracle/app/oracle/product/7.3.2/dbs/apprlbksp.dbf
/oracle/oradata/oracle7/redooracle.log
/oracle/oradata/oracle7/control1.ctl
/oracle/oradata/oracle7/control2.ctl
/oracle/oradata/oracle7/control3.ctl
<backup directory>
%dbstart
中有:以上*.dbf文件为数据文件,*.log文件为日志文件,*.ctl文件为管控文件
%exit
%tar uvf /dev/rmt/0 <backup files>
节录:如果为oracle 7.2 ,则copy 反之亦然的 data files,relog files,control files.
6.3、每天继续做一次 partial online with archiving backups .
#su - oracle
%svrmgrl
%svrmgrl>connect internal
%svrmgrl>alter tablespace billsp begin backup
%svrmgrl>alter tablespace billtmpsp begin backup
%svrmgrl>alter tablespace billrlbksp begin backup
%svrmgrl>alter tablespace system begin backup
%svrmgrl>alter tablespace rbs begin backup
%svrmgrl>alter tablespace temp begin backup
%svrmgrl>alter tablespace tools begin backup
%svrmgrl>alter tablespace users begin backup
%svrmgrl>host cp all datafile to the backup storage. #文件名如第一步中以.dbf结尾的.
%svrmgrl>alter tablespace billsp end backup
%svrmgrl>alter tablespace billtmpsp end backup
%svrmgrl>alter tablespace billrlbksp end
[1] [2] [3] 下一页
正在看的ORACLE教程是:有关Oracle数据库的备份情况。backup%svrmgrl>alter tablespace system end backup
%svrmgrl>alter tablespace rbs end backup
%svrmgrl>alter tablespace temp end backup
%svrmgrl>alter tablespace tools end backup
%svrmgrl>alter tablespace users end backup
动手一个sql文件,如上所所写.
The billing system can recover to the point of failure when the failure occur.
七、备份文件的以后:
7.1恢复原文件:
以下是对"/etc/passwd"文件的直至
(、抽出合理的磁带
(、运营以下命令回复"/etc/passwd"文件
# rsh www mt -f /dev/rmt/0 rew
( 认出最近的磁带,向退却送回最近的"/etc/passwd",比如要想到星期三的"/etc/passwd"文件,调试如下命令)
#rsh www mt -f /dev/rmt/0n fsf 2
# ufsrestore if www:/dev/rmt/0n
ufsrestore > ls
.:
etc/
ufsrestore > cd etc
ufsrestore > ls
./etc:
passwd
ufsrestore > add passwd
Warnign :./etc:File exists
ufsrestore > verbose
verbose mode on
ufsrestore > extract
Extract requested files
You have not read any volumes yet .
Unless you know which volume your file(s) are on you should start witch the last volume and work to wards
the first.
Specify next volume #:1
extract file ./etc/passwd
Add links
Set directory mode ,ower,and times.
set owner /mode for '.'?(yn)n
Directories already exit , set mode anyway?(yn)y
ufsrestore >quit
热备份可以在数据库挡住打情况下来进行,一般通过采用Alter命令相反详见空间的状态来开始顺利完成备份的,备份进行时后,
要恢其原来状态,否则redo log 可能会错配,导致数据库下次启动时对倍受影响的备注空间进行时只不过构成。热备份的决定是:
1.热备份工作必须尽快数据库在Archivelog 方式下转换,在SQLDBA状态下用alter database archivelog|noarchivelog命
令可扭曲备份的模式。
2.热备份仅仅在数据库不常用或使用率更高的情况下开展。
3.热备份需大量的档案空间。
一般情况,Oracle 以循环的方式擦除Online redo log 文件,当清空第一个redo log文件第二个,要到最后一个,最
后一个被隔开后,后台进程LGWR就遮盖第一个,在Archivelog方式下,后台进程ARCH在每一个redo log 文件被构成前,给
它先为一个拷贝,一般,这些文档的redo log 文件被加载磁盘或磁带中。如果磁盘空间够用,建议用于磁盘,这样可大大减到
寡已完成备份所需的时间。
在作热备份之前,要将config.ora文件中的log_archive_start 改true 将log_archive_dest
规定archive redo log 文件的左边:
log_archive_dest=/wwwdg/oracle/arch/arch
log_archive_start=true
一旦数据库列车运行在archivelog状态下,就可以则有备份了。热备份的命令文件由三部分一组:
1、数据文件一个列于空间一个空间地备份:
a.设置此表空间为备份状态。
b.备份此表空间的数据文件。
c.直至注记空间为正常状态。
2、备份档案要作log 文件:
a.临时暂停索引进程
b.log下那些在archive redo log目标目录中的文件
c.重新启动archive进程
d.备份备份的redo log 文件
3、用alter database backup controlfile命令来备份拷贝文件
在热备份直通之前log_archive_dest目录或许已另加,这时就要备份目录,然后删减文件,被囚空间,这个过程有如下步
骤:
1、暂时暂停archive进程。
2、记录在log_archive_dest目录下的文件。
3、重新启动archive 进程。
4、备份archive redo log 文件。
5、移除目录中的文件。
sqldba lmode=y <<EOF arch1
archive log stop;
exit
EOF arch1
FILES='ls /wwwdg/oracle/arch/arch*.dbf';
sqldba lmode=y<<EOF arch2
connect internal
archive log start;
exit
EOF arch2
tar -rvf /dev/rmt/0 FILES
rm -f $FILES
逻辑备份与物理备份的相辅相成。
前面参考了三种备份的方法,在数据库要用备份时,必要将数据这三种备份的特点灵活运用,我们首先比较一下三种方法的
特性。
方 法
类 型
恢 迨 特 性
EXPORT解析
逻辑型
可以将任何数据库对象丧失到它被等价时的状态
乻hutdown
?将最近copyes of datafile,拷贝到$oracle_home/dbs目录。
?%svrmgrl
?svrmgrl>connect internal
…svrmgrl>startup mount pfile=filename exclusive
?svrmgrl>alter database recover;
注解:将自动完全恢复数据到the point of failure;
? svrmgrl>alter database open;
?当archive log文件过多时,在 来作过部分备份后,可将current log sequence 之前的log***.arc删减.
#su - oracle
%svrmgrl
svrmgrl>connect internal;
svrmgrl>archive log list;
#此处标示出current log sequence.假设为360。
Svrmgrl>exit
$cd /billdg/oracle/app/oracle/product/7.3.2/dbs/arch
$ rm ......... #将log360.arc之前的文件如log359.arc,log358.arc.............封禁。
和气 遗 份
物理型
可将数据库到它被封闭的状态
热 补 份
物理型
可将数据库恢复原外调一时间点的状态
当数据库比较小时,处理方式业务也小时,和气备份选取就可以了。如果只对一两个备注备份解析就没用了。一般来说一个好,备份最
终监督总之外逻辑和物理,选取表明数据库在逻辑的正确性而物理备份必要物理。
另外,在来进行备份时所需一些存储介质,对于这些介质应对其准备就绪管理
1:根据备份的内容,日期将介质统一编号,以免备份和回复时就让介质,带来原来的备份出错。
2:介质应以存放在与计算机设备各有不同的地点,以免机房发生意外时,备份与计算机设备一同破坏。
注释:
tar命令
tar option [arguments] filename...
option:
c:成立一个由命令行而无须的新的tarfile
t:所列tarfile中的内容
x:敞开tarfile;
f:用到其后的filename 或/dev/rmt/0|1
v:表列出被回复的文件名;
p:恢复原文件
example:
#tar cvf /dev/rmt/0 /oracle
备份/
上一页 [1] [2] [3] 下一页
正在看的ORACLE教程是:有关Oracle数据库的备份情况。root 下的所有内容#tar tvf /dev/rmt/0
罗列磁带上的所有内容
#tar xvf /dev/rmt/0 /oracle
将磁带上的/oracle目录中的内容回复到当前目录中
选取选项
关键字 内 Pardosa
USERID 运转假设命令的帐号的用户名/口令。
BUFFEER 用来引数据言道的缓冲区的大小。
FILE 假定转储文件的名字
COMPRESS 假设到底必要JPEG有碎片的段并成一个范围,这将就会影响STORAGE
子句,
GRANTS 推时否要推数据库对象上的使用权
INDEXES 应该要嵌入表上的索引
ROWS 应该理应选取行。如它为‘N',那么在推文件中仅转化成数据库
对象的DDL
CONSSTRAINTS 有否推表旧的恰巧条件
FULL 如改为‘Y',那么将制订一个整个数据库等价转换
OWNER 要假定的一系列数据库帐号,然后拒绝执行这些帐号的USER嵌入不单是
并作
TABLES 要基本概念的一系列详见;拒绝执行这些表的TABLE选取配置
RECORDLENGTH 转储解析文件日志的长度(以字节为单位),通常都运用于缺省,除
非要在两个不尽相同操作系统中传递信息解析文件
INCTYPE 正在拒绝执行的给定操作者的类型(有效值有”COMPLETE“(缺省值),
CUMULATIVE”和“IVCREMENTAL”)
RECORD 在增量给定类型中的一个标记,标明是否是将日志存储到数据字典
中日志推的表中
PARFILE 要发送至给推的参数文件的名字。这个文件将包涵所有参数的登
口项
ANALYZE 标明究竟将移置对象的统计数字信息存储选取转储文件中
CONSISTENT 标明确实移去所有等价对象的载入一致镜像。
LOG 假定日志将要读取的文件的名字
MLS 标明到底要嵌入MLS 标号
MLS_LABEL_ 规定了MLS标号的格式
为基础选择项
USERID 行驶整合命令的帐号的用户名/口令。
BUFFEER 用来由此而来数据不依的缓冲区的大小。
FILE 导向转储文件的名字
SHOW 规定文件内容否被结果显示,而不是被督导。
EGORE 标明在制订‘CREATE'命令时,究竟忽略碰见的错误。如果正
在应运而生的对象已经假定时,其所用作这个参数。
FULL 如分设‘Y',那么将拒绝执行一个整个数据库新增操控
FROMUSER 在FULL=N的情况下,才有参数。它是一系列的数据库帐号,其
对象应向嵌入转储文件中写入。
TOUSER 一系列数据库帐号,等价转储文件扯的对象将要新增这些帐号。
GRANTS 内嵌时否要转换成数据库对象上的认可
INDEXES 是不是要转换成表上的索引
ROWS 到底可不应运而生行。如它为‘N',那么在新增文件中执行者数据库对
象的DDL
FULL 如划为‘Y',那么将分派一个整个数据库等价操纵
TABLES 要转换成的一系列表格
RECORDLENGTH 转储整合文件日志的长度(以字节为单位),通常都用作缺省,除
非要在两个不尽相同操作系统中传播为基础文件
INCTYPE 正在分派的引入加载的类型(有效值有”COMPLETE“(缺省值),
CUMULATIVE”和“IVCREMENTAL”)
PARFILE 要传播给引入的参数文件的名字。这个文件将还包括所有参数的转入
口项
ANALYZE 标明前提将降对象的粗略估计信息重写转换成转储文件中
LOG 应运而生日志将要读取的文件的名字
MLS 标明否要为基础MLS 标号
热备份的命令文件:
ORACLE_SID=oracle7
ORACLE_HOME=/wwwdg/oracle
sqldba lmode=y<<EOF arch1
connect internal
alter tablespace SYSTEM begin backup;
!tar -cvf /dev/rmt/0 /wwwdg/oracle/dbms/sys01.dbf
alter tablespace SYSTEM end backup;
alter tablespace BWT begin backup;
!tar -cvf /dev/rmt/0 /wwwdg/oracle/dbms/BWT1.dbf
alter tablespace BWT end backup;
archive log stop
exit
EOF arch1
FILES='ls /wwwdg/oracle/arch/arch*.dbf';
sqldba lmode=y<<EOF arch2
connect internal
archive log start;
exit
EOF arch2
tar -rvf /dev/rmt/0 $FILES
rm -f $files
sqldba lmode=y<<EOFarch3
alter database backup controlfile to
'/wwwdg/oracle/dbms/bwtcontrfile.backup';
exit
EOF arch3
tar -rvf /dev/rmt/0 /wwwdg/oracle/bwt/bwtcontrofile.backup
上一页 [1] [2] [3]