- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章有关Oracle数据库的备份情况由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、意义:
当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、网络故障、进程 。
故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢 。
失。因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统 。
的一个重要组成部分。恢复处理随所发生的故障类型所影响的结构而变化.
2、备份的方法 。
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 。
或 。
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 。
%dbstart 。
注:以上*.dbf文件为数据文件,*.log文件为日志文件,*.ctl文件为控制文件 。
%exit 。
%tar uvf /dev/rmt/0 。
注:如果为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、备份文件的恢复:
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 < 。
archive log stop,
exit 。
EOF arch1 。
FILES='ls /wwwdg/oracle/arch/arch*.dbf',
sqldba lmode=y< 。
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目录中的内容恢复到当前目录中 。
导出选项 。
关键字 内 容 。
USERID 运行导出命令的帐号的用户名/口令.
BUFFEER 用来取数据行的缓冲区的大小.
FILE 导出转储文件的名字 。
COMPRESS 导出是否应该压缩有碎片的段成一个范围,这将会影响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< 。
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< 。
connect internal 。
archive log start,
exit 。
EOF arch2 。
tar -rvf /dev/rmt/0 $FILES 。
rm -f $files 。
sqldba lmode=y< 。
alter database backup controlfile to 。
'/wwwdg/oracle/dbms/bwtcontrfile.backup',
exit 。
EOF arch3 。
tar -rvf /dev/rmt/0 /wwwdg/oracle/bwt/bwtcontrofile.backup 。
最后此篇关于有关Oracle数据库的备份情况的文章就讲到这里了,如果你想了解更多关于有关Oracle数据库的备份情况的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如何启用 Mercurial(中央/主)存储库的自动(增量)备份? 我来自颠覆,在那里我能够制作一个提交 Hook ,将更改上传到 S3。 编辑: 如果这种策略对 Mercurial 没有意义,那么什
我想定期创建我的github存储库的备份。是否有一种快速的方法可以在不知道整个列表的情况下将它们全部拉出? 沃尔特 最佳答案 您可以通过GitHub的API获取整个列表: curl http://gi
我正在使用 flatpages在我在本地服务器上开发的站点中。我需要备份平面页面的数据以在最终服务器中使用它。有谁知道怎么做? 最佳答案 在您的本地服务器上运行: python manage.py d
我们已将应用服务升级到 S1,并希望设置自动备份。这是一个带有 SQL 数据库的 .net core 应用程序。对于数据库部分,我得到以下内容: No supported connection str
我们使用一些 阻止 blob 来存储一些持久资源,然后 用于存储事件数据的页面 blob 我们需要备份 blob,因此我尝试使用 AzCopy。它在我的开发机器上工作正常,但在其他慢速机器上失败,并出
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 5年前关闭。 Improve this questi
我正在看这个例子 docker run --rm --volumes-from myredis -v $(pwd)/backup:/backup debian cp /data/dump.rdb /b
我们使用一些 阻止 blob 来存储一些持久资源,然后 用于存储事件数据的页面 blob 我们需要备份 blob,因此我尝试使用 AzCopy。它在我的开发机器上工作正常,但在其他慢速机器上失败,并出
我目前正在使用 Java,并且正在寻找一个程序,该程序可以在每次编译时保存我正在执行的操作的新版本。我不介意它是否不运行,我可以进去编辑类名,使其与 .java 名称匹配。由于我是一个初学者,我总是因
在 RabbitMQ 管理控制台中,出于导入和导出目的,我在概览页面底部看到了导入/导出定义链接。但是有了这个,我能够导出整套队列、交换等。 我有一个 MQ 服务器,其中包含多个应用程序的 MQ 设置
我在 Eclipse IDE 中做了一个 Maven 项目,但在某些时候,我决定以其他名称复制并粘贴工作区位置中的文件夹,以避免在迄今为止工作正常的原始项目中进行一些错误配置,但是,我在执行中遇到了问
有没有办法备份在任何给定元素上设置的所有事件? 背景故事:我有一些代码,当用户将鼠标悬停在某个图标上时(想想悬停帮助文本),会显示绝对定位的“弹出窗口”。如果用户将鼠标悬停在弹出窗口上,它会停留在周围
我需要将 MySQL 数据库移动到新位置。根据workbench,数据库大小只有200MB,但有些表有数百万行,报告索引和数GB的数据长度。结果,EXPORT 的大小为 15GB,导出 DB 并将其复
我有一个工作数据库 - 我想复制它的所有数据(甚至只是其中的 1 个表)并在磁盘上创建备份,并在另一个位置(不是同一台计算机)上创建一个“备份”数据库。另一台计算机未连接到互联网 我该怎么做? 最佳答
我有一个实时数据库,我想要做的是制作一份副本。我可以通过 SSH 和 phpMyAdmin 访问 MySQl。是否有一个命令可以在单个命令/操作中复制/备份数据库,而无需使用导出/导入? 谢谢 最佳答
我是 PostgreSQL 的新手,我正在寻找备份数据库的方法。我知道有 3 种方法 pg_dump,快照和复制以及使用 WAL。您建议使用哪一个来完整备份数据库?如果可能,请提供代码片段。 最佳答案
如何快速备份/恢复mysql数据库中的数据? 最佳答案 mysqldump命令行备份最快, (使用mysql命令行恢复,mysql -u #username# -p #database# < #dum
从管理的角度来看,我是 MySQL 的新手。 在过去的几个小时里,我一直在谷歌上搜索,但没有成功,我想知道是否有人可以为我指明正确的方向,让我知道要用谷歌搜索什么或提出建议。 基本上,我正在寻找有关如
我需要备份创建模式附带的数据库(转储)。使用 putty(通过 SSH)完成这项工作的命令行是什么?我研究并思考了这个命令,但它只执行表备份和数据。 mysqldump -h HOST -u LOGI
我正在尝试创建一个将整个/dev/sda1 备份到/mnt/Backup 的 bash 脚本 /dev/sda1 457G 3.5G 431G 1% / /dev/sdb1
我是一名优秀的程序员,十分优秀!