配色: 字号:
Oracle实用教程(Oracle 11G版)第9章 表空间、备份和
2022-12-25 | 阅:  转:  |  分享 
  
第9章 表空间、备份和恢复9. 1 表 空 间9. 2 备份和恢复概述9. 3 导入/导出9. 4 脱 机 备 份9. 5
联 机 备 份9. 6 数 据 泵9. 1 表 空 间9.1.1 创建表空间创建表空间使用CREATE TABLES
PACE语句,创建的用户必须拥有CREATE TABLESPACE系统权限。语法格式为:CREATE TABLESPACE <表空
间名> DATAFILE ''<文件路径>/<文件名>'' [SIZE <文件大小> [ K∣M ]] [ REUSE ]
[ AUTOEXTEND [ OFF∣ON [ NEXT <磁盘空间大小> [ K∣M ]] [ MAXSI
ZE [ UMLIMITED∣<最大磁盘空间大小> [ K∣M ] ] ] ] [ MINMUM EXTENT <数
字值>[ K | M ] ] [ DEFAULT <存储参数>] [ ONLINE∣OFFLINE ]
[ LOGGING∣NOLOGGING ] [ PERMANENT∣TEMPORARY ]
[ EXTENT MANAGEMENT [ DICTIONARY∣LOCAL [ AUTOALLOCATE∣UNIFORM
[ SIZE <数字值>[ K∣M ] ] ] ] ]9.1.1 创建表空间【例9.1】 创建大小为50MB的表空间TEST,
禁止自动扩展数据文件。CREATE TABLESPACE TEST LOGGING DATAFILE ''E:
\app\orcl\oradata\XSCJ\TEST01.DBF'' SIZE 50M REUSE AUTOEXTEN
D OFF;运行结果如图9.1所示。9.1.1 创建表空间【例9.2】 创建表空间DATA,允许自动扩展数据文件。CREATE
TABLESPACE DATA LOGGING DATAFILE ''E:\app\orcl\oradata\XS
CJ\DATA01.DBF'' SIZE 50M ? REUSE AUTOEXTEND ON NEXT 10M MAXSIZE
200M EXTENT MANAGEMENT LOCAL;运行结果如图9.2所示。9.1.2 管理表空间利用ALTER
TABLESPACE命令可以修改现有的表空间或它的一个或多个数据文件。可以为数据库中每一个数据文件指定各自的存储扩展参数值;Or
acle 12c会在自动扩展数据文件时使用这些参数。语法格式为:ALTER TABLESPACE <表空间名> [ ADD
DATAFILE∣TEMPFILE ''<路径>/<文件名>'' [ SIZE <文件大小> [ K∣M ] ] [ R
EUSE ] [ AUTOEXTEND [ OFF∣ON [ NEXT <磁盘空间大小> [ K∣M ] ] ] ]
[MAXSIZE [ UNLIMITED∣<最大磁盘空间大小> [ K∣M ] ] ] [ RENAME
DATAFILE ''<路径>/<文件名>'',…n TO ''<路径>/<新文件名>'''',…n ] [ DEFAULT
STORAGE <存储参数>] [ ONLINE∣OFFLINE [ NORMAL∣TEMPORARY∣IMMEDIA
TE ] ] [ LOGGING∣NOLOGGING ] [ READ ONLY∣WRITE ]
[ PERMANENT ] [ TEMPORARY ]9.1.2 管理表空间【例9.3】 通过ALTER TA
BLESPACE命令把一个新的数据文件添加到DATA表空间,并指定了AUTOEXTEND ON和 MAXSIZE 300M。ALT
ER TABLESPACE DATA ADD DATAFILE ''E:\app\orcl\oradata\XSCJ\DATA
02.DBF'' SIZE 50M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE 500M;?运
行结果如图9.3所示。9.1.3 删除表空间如果不再需要表空间和其中保存的数据,可以使用DROP TABLESPACE语句删除已
经创建的表空间。语法格式为:DROP TABLESPACE <表空间名> [ INCLUDING CONTENTS [ {A
ND | KEEP} DATAFILES ] [ CASCADE CONSTRAINTS ] ] ;【例9.4】 删除表
空间DATA及其对应的数据文件。DROP TABLESPACE DATA INCLUDING CONTENTS AND D
ATAFILES;9. 2 备份和恢复概述9.2.1 备份概述1.备份原则(1)日志文件归档到磁盘。归档日志文件最好不要与数据
库文件或联机重做日志文件存储在同一个物理磁盘设备上。如果数据库文件和当前激活重做日志文件丢失,可使用联机备份或脱机备份,然后可以继
续安全操作。(2)如果数据库文件备份到磁盘上,应使用单独的磁盘或磁盘组保存数据文件的备份。备份到磁盘上通常可以在较短时间内恢复。(
3)应保持控制文件的多个备份,控制文件的备份应置于不同磁盘控制器下的不同磁盘设备上。(4)联机日志文件应为多个,每个组至少应保持两
个成员。日志组的两个成员不应保存在同一个物理设备上,因为这将削弱多重日志文件的作用。(5)保持归档重做日志文件的多个备份,在多个磁
盘上都保留备份。(6)通过在磁盘上保存最小备份和数据库文件向前回滚所需的所有归档重做日志文件,在许多情况下可以使得从备份中向前回滚
数据库或数据库文件的过程简化和加速。(7)增加、重命名、删除日志文件和数据文件,改变数据库结构和控制文件等操作都应备份,因为控制文
件存放数据库的模式结构。(8)若企业有多个Oracle数据库,则应使用具有恢复目录的Oracle恢复管理器。9.2.1 备份概述
2.数据库备份应用(1)实例失败。从实例失败中恢复应自动进行,数据库需要访问位于正确位置的所有控制文件、联机重做日志文件和数据文件
。数据库中任何未提交的事务都要回滚。一个实例失败(例如由服务器引起的失败)之后,当数据库要重启动时,必须检查数据库报警日志中的错误
信息。(2)磁盘失败。磁盘失败也叫介质失败(media failure),通常由磁盘损坏或磁盘上读错误引起。这时,磁盘上驻留的当前
数据库文件无法读出。驻留联机重做日志文件的磁盘应被镜像,失败时,它们不会丢失。镜像可通过使用重做日志文件实现,或在操作系统级制作镜
像文件。9.2.1 备份概述如果所有控制文件都丢失,可以使用CREATE CONTROLFILE命令。该命令允许为数据库创建一个
新的控制文件,并指定数据库中的所有数据文件、联机重做日志文件和数据库参数。如果对使用的参数有疑问并正在运行ARCHIVELOG备份
,可用以下命令:ALTER DATABASE BACKUP CONTROLFILE TO TRACE;当执行该命令时,系统将把一条
合适的CREATE CONTROLFILE命令写入到跟踪文件。这时,可根据需要编辑这个由Oracle创建的跟踪文件。9.2.1
备份概述如果丢失的是数据文件,可从前一天晚上的热备份中恢复,步骤如下。(1)从备份中把丢失的文件恢复到其原来位置。cp /back
up/XSCJ/users01.dbf'' /zhou/oradata/XSCJ(2)安装数据库。ORACLE_SID=XSCJ;
export ORACLE_SIDORAENV_ASK=NO; export ORAENV_ASconnect s
ystem/Manager123 as sysdbastartup mount XSCJ;(3)恢复数据库。要求给出恢复所需的各归
档日志文件名。RECOVER DATABASE;出现提示时,为需要的归档重做日志文件输入文件名。另外,当数据库恢复操作发出提示时,
可以使用AUTO选项。(4)打开数据库。ALTER DATABASE OPEN;当从备份恢复数据文件时,数据库会辨认它是否来自数据
库停止前的那个时间点。9.2.1 备份概述3.数据库备份类型(1)逻辑备份。导出是将数据库中数据备份到一个称为“导出转储文件”的
二进制系统文件中。导出有以下三种模式。? 用户(User)模式:导出用户所有对象以及对象中的数据。? 表(Table)模式:导出用
户的所有表或者用户指定的表。? 全局(Full)模式(也称为数据库模式):导出数据库中所有对象,包括所有数据、数据定义和用来重建数
据库的存储对象。导出备份可以导出整个数据库、指定用户或指定表。在导出期间,可以选择是否导出与表相关的数据字典的信息,如权限、索引和
与其相关的约束条件。导出备份有三种类型。? 完全型(Complete Export):对所有表执行全数据库导出或仅对上次导出后修改
过的表执行全数据库导出。? 积累型(Cumulative):备份上一次积累型备份所改变的数据。? 增量型(Incremental)
:备份上一次备份后改变的数据。9.2.1 备份概述(2)物理备份。物理备份是备份数据库文件而不是其逻辑内容。Oracle支持两种
不同类型的物理备份:脱机备份(也称为冷备份)和联机备份(也称为热备份)。脱机备份在数据库已经正常关闭的情况下进行。数据库正常关闭后
会提供给用户一个完整的数据库。当数据库处于脱机备份状态时,备份的文件包括所有数据文件、所有控制文件、所有联机重做日志和服务器参数文
件(可选)。当数据库关闭时,对所有这些文件进行备份可以提供一个数据库关闭时的完整镜像。以后可以从备份中获取整个文件集并恢复数据库的
功能。9.2.2 恢复概述1.实例恢复实例恢复由下列操作步骤完成。(1)为了解恢复数据文件中没有记录的数据,进行向前滚。该数据记
录在在线日志中,包括对回退段的内容恢复。(2)回退未提交的事务,按步骤(1)重新生成回退段所指定的操作。(3)释放在发生故障时正在
处理事务所持有的资源。(4)解决在发生故障时正经历这一阶段提交的任何悬而未决的分布事务。9.2.2 恢复概述2.介质恢复这种恢复
有两种形式:完全介质恢复和不完全介质恢复。? 完全介质恢复。它使用重做数据或增量备份将数据库更新到最近的时间点,通常在介质故障损坏
数据文件或控制文件后执行完全介质恢复操作。实施完全数据库恢复时,根据数据库文件的破坏情况,可以使用不同的方法。例如,当数据文件被物
理破坏,数据库不能正常启动,这时,可以对全部的或单个被破坏的数据文件进行完全介质恢复。? 不完全介质恢复。这是在完全介质恢复不可能
或者有特殊要求时进行的介质恢复。例如,系统表空间的数据文件被损坏、在线日志损坏或人为误删基表和表空间等。这时可以进行不完全恢复,使
数据库恢复到故障前或用户出错之前的一个事务的一致性状态。不完全介质恢复有不同类型的使用,取决于需要不完全介质恢复的情况。9. 3
导入/导出9.3.1 导出Oracle的Export实用程序用来读取数据库(包括数据字典)和把输出写入一个称为导出转储文件(E
xport dump file)的二进制文件中。可以导出整个数据库、指定用户或指定表。在导出期间,可以选择是否导出与表相关的数据字
典信息。例如,权限、索引和与其相关的约束条件。Export所写的文件包括完全重建全部被选对象所需的命令。从命令行调用Export程
序并且传递各类参数和参数值,可以完成导出操作。参数和参数值决定了导出的具体任务。表9.1列出了Export指定的运行期选项。可以在
命令提示符窗口输入“EXP HELP=Y”调用EXP命令的帮助信息。9.3.1 导出导出有以下三种模式。(1)交互模式。在输入E
XP命令后,根据系统的提示输入导出参数,如用户名、口令和导出类型等参数。(2)命令行模式。命令行模式和交互模式类似,不同的是使用命
令模式时,只能在模式被激活后,才能把参数和参数值传递给导出程序。(3)参数文件模式。参数文件模式的关键参数是Parfile。Par
file的对象是一个包含激活控制导出对话的参数和参数值的文件名。9.3.1 导出【例9.5】 以交互模式进行数据库XSCJ的表
XSB的导出。执行的过程与结果如图9.4所示。9.3.2 导入导入操作可把一个操作系统中的Oracle数据库导出后再导入到另一个
操作系统中。导入操作可以交互进行也可通过命令进行。导入操作选项同导出的基本一样,表9.2给出导入操作的参数,其他参数请参照导出参数
。9.3.2 导入【例9.6】 以交互模式进行XSCJ数据库中XSB表的导入。为了查看导入的效果,首先将XSB表删除:DROP
TABLE XSB;导入的过程和结果如图9.5所示。9.3.2 导入下面简单介绍命令行模式和参数模式的EXP与IMP用法。(1
)命令行模式。命令行模式其实与交互式一样,只是命令行模式将交互式中逐步输入的数据在一行命令中全部输入。例如,要导出XSB表,可以在
命令提示符下输入如下命令:EXP USERID=SCOTT/Mm123456 FULL=N BUFFER=10000 FILE=X
SB.DMP TABLES=XSB结果如图9.6所示。9.3.2 导入(2)参数模式。参数模式其实就是将命令行中命令后面所带的参
数写在一个参数文件中,然后再使用命令,使后面带一个调用该文件的参数。可以通过普通的文本文件编辑器来创建这个文件。为了便于标识,将该
参数文件命名为.parfile的后缀。以下是一个参数文件的内容。USERID=SCOTT/Mm123456FULL=NBUFFER
=10 000FILE=XSB.DMPTABLES=XSB使用参数模式执行过程如下:EXP PARFILE=XSB.PARFILE
9. 4 脱 机 备 份在磁盘空间容许的情况下,将这些文件复制到磁盘上。冷备份一般在SQLPlus中进行,在进行备份前,应该确
定备份哪些文件,通过查询V$DATAFILE视图可以获取数据文件的列表;通过查询V$LOGFILE视图可以获取联机重做日志文件的列
表;通过以下语句可查询控制文件的列表:SHOW PARAMENTER CONTROL_FILES;【例9.7】 把XSCJ数据库
的所有数据文件、重做日志文件和控制文件都备份。(1)正常关闭要备份的实例,在命令提示符窗口中输入如下命令:sqlplus/nolo
gconnect scott/Mm123456 as sysdbashutdown normal(2)备份数据库。使用操作系统的备
份工具,备份所有的数据文件、重做日志文件、控制文件和参数文件。(3)启动数据库。startup mount9. 5 联 机 备
份9.5.1 以ARCHIVELOG方式运行数据库进行联机备份可以使用PL/SQL语句,也可以使用备份向导,但都要求数据库在AR
CHIVELOG方式下运行。下面说明如何进入ARCHIVELOG方式。(1)进入命令提示符操作窗口。SQLPLUS/NOLOG(2
)以SYSDBA身份和数据库相连。CONNECT SCOTT/Mm123456 AS SYSDBA(3)使数据库在ARCHIVEL
OG方式下运行。SHUTDOWN IMMEDIATESTARTUP MOUNTALTER DATABASE ARCHIVELOG;
ARCHIVE LOG START;ALTER DATABASE OPEN;9.5.1 以ARCHIVELOG方式运行数据库下面
的命令将从Server Manager中显示当前数据库的ARCHIVELOG状态。ARCHIVE LOG LIST整个过程的SQL
Plus窗口如图9.7所示。9.5.2 执行数据库联机备份(1)逐个表空间备份数据文件首先要使用ALTER TABLESPAC
E BEGIN BACKUP语句将表空间设置为备份状态,例如,标记表空间SYSTEM备份开始的语句如下:ALTER TABLESP
ACE SYSTEM BEGIN BACKUP;接着,在命令提示符窗口中使用操作系统提供的命令备份表空间中的数据文件,例如:COP
Y E:\app\orcl\oradata\XSCJ\SYSTEM01.DBF D:\BACKUP所有的数据文件备份完后,要使用A
LTER TABLESPACE END BACKUP指出联机备份的结束,将表空间恢复到正常状态,例如:ALTER TABLESPA
CE SYSTEM END BACKUP;9.5.2 执行数据库联机备份(2)备份归档重做日志文件首先停止当前数据库的ARCHI
VELOG状态:ARCHIVE LOG START;然后记录归档重做日志目标目录中的文件,并且备份归档重做日志文件。最后使用ALT
ER DATABASE BACKUP CONTROLFILE命令备份控制文件:ALTER DATABASE BACKUP CONT
ROLFILE TO ''D:\BACKUP\file.bak'';9. 6 数 据 泵9.6.1 概述数据泵(Data Pu
mp)是Oracle 12c提供的一个实用程序,它可以用从数据库中高速导出或加载数据库的方法,自动管理多个并行的数据流。数据泵可以
实现在测试环境、开发环境、生产环境下以及高级复制或热备份数据库之间的快速数据迁移,还能实现部分或全部数据库逻辑备份,以及跨平台的可
传输表空间备份。数据泵技术相对应的工具是Data Pump Export和Data Pump Import。它的功能与前面介绍的E
XP和IMP类似,所不同的是数据泵的高速并行的设计使得服务器运行时执行导入和导出任务快速装载或卸载大量数据。9.6.2 EXPD
P导出EXPDP可以交互进行,也可以通过命令进行。表9.3给出了EXPDP命令的关键字。【例9.8】 使用EXPDP导出SCOT
T用户的表XSB。(1)EXPDP准备工作。在使用EXPDP之前,需要创建一个目录,用于存储数据泵导出的数据。使用如下方法创建目录。CREATE DIRECTORY dpump_dir as ''d:\bak'';在目录创建后,必须给导入/导出的用户赋予目录的读/写权限。GRANT READ,WRITE ON DIRECTORY DPUMP_DIR TO <用户名>;(2)使用EXPDP导出数据。在命令提示符窗口中输入以下命令。EXPDP SCOTT/Mm123456 DUMPFILE=XSB.DMP DIRECTORY=DPUMP_DIR TABLES=XSB JOB_ NAME=XSB_JOB9.6.2 EXPDP导出执行的过程与结果如图9.8所示。9.6.3 IMPDP导入表9.4给出了IMPDP与EXPDP不同的关键字说明,其余请参考EXPDP的关键字。可以如下语句查看IMPDP的关键字。IMPDP HELP=Y9.6.3 IMPDP导入【例9.9】 使用XSB.DMP导出文件导入表XSB。IMPDP SCOTT/Mm123456 DUMPFILE=XSB.DMP DIRECTORY=DPUMP_DIR运行结果如图9.9所示。
献花(0)
+1
(本文系籽油荃面原创)