ITPub博客

首页 > 数据库 > Oracle > Oracle数据库的备份(中)

Oracle数据库的备份(中)

原创 Oracle 作者:spaceair 时间:2004-12-20 16:55:14 0 删除 编辑
物理备份的实现之热备份
热备份即数据库在开启(正常运行)的情况下并以Archive log方式运行时,进行的数据库备份。热备份可以给 Oracle用户提供一个不间断的运行环境。热备份又分在线备份和离线备份,在线和离线备份的惟一区别是数据库的tablespace是否在线,主要表现在Oracle用户可以对在线备份的tablespace进行数据操作,而离线备份的tablespace暂时不能接受用户的数据操作。我们可以根据系统的实际情况选择相应的热备份。
因为热备份通过操作系统命令备份物理文件将消耗大量系统资源,因此通常都是安排在用户访问频率较低的时候(如夜间)进行。
1. 查询动态性能示图v$database,并确定数据库是工作在Archive模式下的:
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
或者通过下述方法查看数据库的归档信息:
SQL> archive log list
Database log mode  Archive Mode 
Automatic archival   Enabled
. . . . . .
如果Database log mode显示为“Archive Mode”,则数据库工作在归档模式下。否则,需要修改,如:
SQL>shutdown immediate
SQL>startup mount
SQL> alter database archivelog;
SQL> alter database open;
如果Automatic archival显示为“Enabled”,则数据库归档方式为自动归档。否则需要手工归档,或者将归档方式修改为自动归档,如:
正常shutdown数据库,在参数文件中init.ora中加入如下参数
SQL>shutdown immediate
修改init.ora:
LOG_ARCHIVE_START=TRUE
LOG_ARCHIVE_DEST1=ORACLE_HOME/admin/o816/arch
SQL>startup
然后,重新启动数据库,此时Oracle数据库将以自动归档的方式工作在Archive模式下。 其中参数LOG_ARCHIVE
_DEST1是指定的归档日志文件的路径,建议与Oracle数据库文件存在不同的硬盘,一方面减少磁盘I/O竞争,另外一方面也可以避免数据库文件所在硬盘毁坏之后的文件丢失。
归档路径也可以直接指定为磁带等其它物理存储设备,但可能要考虑读写速度、可写条件和性能等因素。
注意:当数据库处在ARCHIVE模式下时,一定要保证指定的归档路径可写,否则数据库就会挂起,直到能够归档所有归档信息后才可以使用。另外,为创建一个有效的备份,当数据库在创建时,必须履行一个全数据库的冷备份, 就是说数据库需要运行在归档方式, 然后正常关闭数据库,备份所有的数据库组成文件。这一备份是整个备份的基础, 因为该备份提供了一个所有数据库文件的拷贝。
2. 备份数据库
(1) 查询和确定要备份的表空间:
SQL> select tablespace_name,status from dba_tablespaces;
(2) 逐个备份所有tablespace:
* online备份表空间
SQL> alter tablespace begin backup; --设置表空间为备份状态
SQL> host
$...(在操作系统中,用操作系统的工具对tablespace所对应的所有数据 文件进行备份,如‘tar’命令等)
$ exit
SQL> alter tablespace aa end backup;                  ——恢复表空间为正常状态
* offline备份表空间
SQL> alter tablespace aa offline normal;   --将表空间设置为脱机状态
SQL> host
$...(在操作系统中,用操作系统的工具对tablespace所对应的所有数据 文件进行备份,如‘tar’命令等)
$ exit
SQL> alter tablespace aa online;——将表空间设置为联机状态
注意:
* 如果数据库没有键入begin backup; end backup或者tablespace online, tablespace offline, 而直接在操作系统进行数据库文件拷贝,Oracle称此行为为“Warm Backup” 此时拷贝出来的文件是无法使用的。
* system tablespace是不可以offline的,只能选择begin backup, end backup。
* 一个tablespace中所对应的所有数据文件必须全部备份, 不能只备份一个文件,否则整个tablespace是无效的。
(3) 备份归档日志文件:
SQL> archive log stop——临时停止归档进程
SQL> exit
log下那些在archive redo log目标目录中的文:
FILES =‘ls <归档文件目录>/arch*.dbf’;export FILES,如:
$FILES=‘ls /usr/oracle/app/oracle/product/8.1.6/admin/o816/arch/arch*.arc’;export FILES;
$ exit
SQL> archive log start;—重新启动archive进程
SQL> host
$...(在操作系统中,用操作系统的工具对FILES中所包括的所有归档文件进行备份,如‘tar’命令等,并删除已备份的归档文件)
$ exit
SQL>
(4) 备份控制文件:
SQL> alter database backup controlfile to‘controlfile_back_name’reuse;
(5) 备份控制文件 TRACE文件:
SQL> alter database backup controlfile to trace;
SQL> host
$...(在操作系统中,该命令将在udump目录下产生创建控制文件的脚本。你可以备份该文件, 一旦所有备份的控制文件全部丢失,可以利用该备份来重新创建控制文件。)        [@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/59630/viewspace-784946/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    149
  • 访问量
    4921240