oracle数据库启动关闭

2022-10-11 版权声明 我要投稿

第1篇:oracle数据库启动关闭

ORACLE数据库的连接、启动和关闭

以下的操作是在DOS 下的sqlplus 下执行的

一,连接

1,直接运行sqlplus,然后要求输入用户名和密码。如果你是管理员的身份,应该在用户名后加上 as sysdba(以下例子使用sysdba身份). 如下图:

2, 运行如下语句直接进入:

Sqlplus 用户名/密码 as sysdba

如下图:

3,运行sqlplus /nolog, 此语句只是进入了sqlplus编辑器,而没有连接到数据库。 所以还需要使用connect 语句来连接到数据库。如下图:

二,关闭数据库

停止数据库使用shutdown命令来完成。

此命令带有四个参数,四个参数的含义如下:

Normal 需要等待所有的用户断开连接

Immediate 等待用户完成当前的语句

Transactional 等待用户完成当前的事务

Abort 不做任何等待,直接关闭数据库

normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接

immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。

transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。

abort 执行强行断开连接并直接关闭数据库。

前三种方式不回丢失用户数据。第四种在不得已的情况下,不建议采用!

当用户使用此命令关闭数据库后,就会自动的卸载数据库。如下图

三,启动数据库(挂载数据库)

当用户关闭数据库后,可以使用startup来打开数据库,此命令有两个可选参数:

第一种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!

第二种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!

如果用户没有参数,直接使用startup来启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!

如下图

第2篇:ORACLE RAC 的启动和关闭顺序

1.使用crs_stat 命令查询RAC节点的服务状态是否正常

2.使用srvctl (service control)命令依次关闭集群服务

关闭顺序:关闭数据库(实例)-->关闭ASM实例-->关闭节点服务 1)关闭数据库

使用ps -ef|grep smon检查数据库是否关闭 2)关闭各节点的ASM实例

3)关闭各节点的服务包括:listener、gsd、ons、vip

3.使用srvctl (service control)命令依次启动集群服务

启动顺序:启动节点服务-->启动ASM实例-->启动数据库实例 1)启动各节点的服务

2)启动ASM实例

3)启动数据库

发现还有实现故障转移的服务没有启动,手动启动一下:

第3篇:Oracle数据库总结报告

周智锋2015-10-10

目录

1.数据库的体系结构 ........................................................................................................................ 3

1.1. Oracle服务器: ........................................................................................................... 3 2.数据库软件安装方法 .................................................................................................................. 12 3.创建oracle数据库 ...................................................................................................................... 20 4.管理数据库实例和数据库存储结构 .......................................................................................... 29 1 数据库的体系结构

1.1. Oracle服务器:

1.是一个数据库管理系统,它提供了一种开放、全面、集成的方法来管理信息。 2.由 Oracle 实例和 和 Oracle 数据库 组成。 3.必须可靠地管理多用户环境中。

的大量数据,大多数用户才能并发访问相同的数据。

4.必须阻止未授权的访问,并且在进行故障恢复时提供有效的解决方案。

1.2 数据库结构

内存结构、进程结构、存储结构;每一个运行的oracle数据库都与一个oracle实例关联。

1.3 存储结构

一个数据库可划分为多个称为表空间的逻辑存储单元。每个表空间可以包含很多 Oracle 逻辑数据块。

1.4 内存结构

系统全局区(SGA)和程序全局区(PGA)

系统全局区:数据缓冲区高速缓存、重做缓冲区、streams池、Java池、大型池、共享池

1.5 进程结构

用户进程和服务器进程、后台进程

后台进程:系统监视器(SMON)、进程监视器(PMON)、数据库写进程(DBWn)、日志写进程(LGWR)、归档进程(ARCn)、检查点(CKPT)

1.6 逻辑和物理数据库结构

逻辑数据库结构:数据库→表空间→段→区→oracle数据块

物理数据库结构(存储):控制文件、数据文件、联机重做日志文件、参数文件、备份文件、归档日志文件、口令文件、预警和跟踪日志文件;OS块

服务器进程和数据库缓冲区高速缓存:

服务进程→SGA(数据库缓冲区高速缓存)→数据库写进程(DBWn)→数据文件→服务进程

1.7 数据文件和表空间的关系

一个表空间包括一个或多个数据文件但是数据文件仅属于一个表空间

表空间和数据文件

数据库、表空间和数据文件彼此密切相关,但也存在不可忽视的差异:

• Oracle 数据库包括一个或多个称为表空间的逻辑存储单元,这些表空间可以作为

一个整体存储数据库的所有数据。

• Oracle 数据库中的每个表空间都包括一个或多个称为数据文件的文件,这些数据

文件具有与运行 Oracle 软件的操作系统一致的物理结构。

• 数据库的数据作为一个整体存储在构成数据库各个表空间的数据文件中。例如,最简单的 Oracle 数据库包括两个表空间(SYSTEM 和 SYSAUX 表空间,这两个表空间是必须存在的),每个表空间包含一个数据文件。另一个数据库可能包括三个表空间,每个表空间包含两个数据文件(共有六个数据文件)。一个数据库最多可以包含 65,534 个数据文件。

1.8

段、区、块

段存在于表空间中,段由区的集合构成,区是数据块的集合而数据块将映射到磁盘块

1.9 数据库中表数据是如何存储:

2. 数据库软件安装方法

2.1 安装要求:1.windows系统环境下:Windows 的最低要求是 256 MB,建议使用 512 MB。在安装中可能还有其它要求(尤其是对磁盘空间的要求)。 2. Linux 平台的最低要求: *内存要求:

– Database Control 实例需要 1 GB *磁盘空间要求:

交换空间为 1.5 GB – /tmp 目录中的磁盘空间为 400 MB – Oracle 软件需要 1.5 GB 至 至 3.5 GB –

预配置的数据库需要 1.2 GB (可选) –

快速恢复区需要 2.4 GB (可选) *系统要求; • 在具有 1 GB RAM 和 1.5 GB 交换空间或更高配置的计算机上可以实现标准安装。 • 安装的详细要求包括:

- Oracle Database 10g 只附带一个种子数据库模板。监听程序名和协议地址

- 客户机将连接标识符解析为连接描述符时使用的命名方法目录服务器使用情况

• Oracle Database Configuration Assistant (DBCA) :用于创建选定的启动数据库。 这个配置辅助程序完成后,可以取消帐户锁定并更改口令。

• iSQL*Plus Configuration Assistant :用于配置 iSQLPlus 使用的 Oracle Application Server Containers for J2EE (OC4J) 实例,以及用于连接 Oracle 数据库的其它工具

2.6 执行配置脚本

继续执行安装过程:

8. 在 Linux 或 UNIX 安装期间出现提示时,请以 root 用户身份执行附加的配置脚本。 在“Xterm”窗口中,输入: $ su # password: oracle # cd /u01/app/oracle/oraInventory # ./orainstRoot.sh # cd /u01/app/oracle/product/10.2.0/db_1 # ./root.sh 9. 在 Linux 或 UNIX 安装期间,接受默认的本地 bin 目录。完成脚本后,退出所有 相关的帐户和窗口以完成安装。

完成安装

10. 安装过程要结束时,请记下 URL 以备将来使用。

2.7 高级安装选项

• 使用 OUI 可以创建使用 Automatic Storage Management 的配置。

• 可以安装并配置 Enterprise Manager (EM) 框架。Oracle Enterprise Manager Database Control 与数据库安装在同一个 Oracle 主目录中,且配置为在独立的 OC4J 实例上 运行。必须执行独立安装才能实现 EM 集中管理功能。 • 如果选择使用 Oracle Enterprise Manager Database Control,则可根据需要将数据库 配置为使用 Oracle 建议的默认备份策略。

• 如果在安装期间选择使用 Oracle Enterprise Manager Database Control,则可将 Oracle Enterprise Manager 配置为向指定的电子邮件地址发送电子邮件预警。这些预警中可

以包含诸如磁盘空间达到临界限制或数据库意外关闭等问题。

• Oracle Database 10g 安装支持 RAC 功能,尤其是集群就绪服务 (CRS) 安装。

• Oracle 主目录可以通过使用 Oracle Enterprise Configuration Management 工具进行复 制。用户使用这个工具可以创建复制请求,然后计划和处理这些请求。可通过 EM Grid Control 使用此工具。

3 创建oracle数据库

3.1 数据库:示例

不同类型的数据库具有自己的实例和存储要求。Oracle 数据库软件包含一些模板,可使用 这些模板来创建不同类型的数据库。典型示例包括:

• 数据仓库:用于存储长期存放的数据,可以通过读操作检索这些数据。 • 事务处理数据库:用于处理数量很多但规模通常较小的事务。 • 通用数据库:用于处理和存放存储时间适中的事务。

Database Configuration Assistant (DBCA)

可以使用 Database Configuration Assistant (DBCA) 创建或删除数据库,或者更改数据库的 配置。还可以根据预定义的模板列表创建数据库,或者通过使用现有数据库作为样本来 创建新数据库或模板。这有时被称为“克隆数据库”。 可通过执行以下步骤调用 DBCA:

1. 以已获得安装 Oracle 软件权限的管理组成员身份登录计算机。 2. 根据需要设置环境变量。 3. 输入 dbca 调用 DBCA。

4. 单击“Next(下一步)”继续操作。

DBCA 通过提供选项来帮助完成某些操作,例如,创建数据库。

3.2 使用 DBCA 创建数据库

可以按以下方式使用 DBCA 创建数据库:

1. 在“DBCA Operations(DBCA 操作)”页中,通过选择“Create a database(创建数 据库)”来调用向导,以便配置和创建数据库。

该向导会提示您输入后面步骤中提及的配置信息。在大多数页中,向导都提供可接 受的默认设置。

2. 选择创建数据库时使用的数据库模板类型。数据库模板有三种类型:数据仓库、通 用数据库和事务处理数据库。这些模板可以复制预配置的数据库,包括数据文件。 数据文件包括控制文件、重做日志文件以及所包括的各种表空间的数据文件。单击 “Show Details(显示详细资料)”可查看每类数据库的配置。

对于更复杂的环境,可能需要选择“Custom Database(定制数据库)”选项。

使用 DBCA 创建数据库(续)

3. Database Identification(数据库标识):以 database_name.domain_name 格式

输入全局数据库名,然后输入系统标识符 (SID)。SID 的默认值是数据库名称,用于 唯一标识与数据库关联的实例。

4. Management Options(管理选项):使用此页设置数据库,以便通过 Oracle Enterprise Manager 对数据库进行管理。选择默认值:“Configure the Database with Enterprise Manager(使用 Oracle Enterprise Manager 配置数据库)”。

3.3 使用 DBCA 创建数据库(续)

5. Database Credentials(数据库身份证明):使用此页指定管理帐户(如 SYS 和 SYSTEM)的口令。在本课中,使用 oracle 作为所有管理帐户的口令。

6. Storage Options(存储选项):指定希望数据库使用的存储机制类型(如文件系统)。 7. Database File Locations(数据库文件位置):根据需要进行选择。如果使用 Oracle Managed File (OMF),则不需要直接管理构成 Oracle 数据库的操作系统文件。可以 按照数据库对象而不是文件名指定操作。有关详细信息,请参阅“管理数据库存储 结构”一课。

使用 DBCA 创建数据库(续)

10. Initialization Parameters(初始化参数):使用此页中的标签可以访问用来更改默认 初始化参数设置的页:

- Memory(内存):使用此页可设置控制内存使用量的初始化参数。请使用 “(A) Typical(典型)”或“(B) Custom(定制)”内存分配。Character Sets(字符集):使用此页可指定数据库的字符集。

最佳方案提示:Oracle 建议尽可能使用 Unicode 作为数据库字符集,因为这种 字符集可灵活地支持 Web 技术及多数口头语言。

- Connection Mode(连接模式):选择“Dedicated(专用)”或“Shared Server Mode(共享服务器模式)”。有关详细信息,请参阅“配置 Oracle 网络环境” 一课。

注:有几个初始化参数是在数据库生存期设置的,如 DB_BLOCK_SIZE 和 CHARACTER_SET 参数。

使用 DBCA 创建数据库(续)

11. Database Storage(数据库存储):如果为数据库选择了一个预配置模板,则不能添 加或删除控制文件或数据文件。

注:为便于参考,可能需要将数据库定义保存为 HTML 文件。

12. Creation Options(创建选项):提供创建数据库、将数据库定义保存为模板和生成 脚本的选项。如果选择所有选项,那么 DBCA 首先会保存数据库模板,然后在目标 目录中生成脚本,最后创建数据库。

3.4 口令管理

DBCA 完成后,请记录以下信息以备将来参考: • 安装日志文件的位置(见 A) • 全局数据库名(见 B) • 系统标识符 (SID)(见 B)

• 服务器参数文件名和位置(见 B) • Enterprise Manager URL(见 C)

单击“Password Management(口令管理)”取消锁定计划使用的数据库帐户。取消锁定 帐户时,请提供口令。

3.5 创建数据库设计模板

模板是预定义的数据库定义,可将其用作创建新数据库的起点。如果在数据库创建过程中 未创建模板,则可以随时通过调用 DBCA 来创建模板。可通过三种方法创建模板: • 根据现有模板

• 根据现有数据库(仅结构) • 根据现有数据库(结构与数据)

DBCA 会指导您完成创建数据库设计模板的各个步骤

3.6 使用 DBCA 删除数据库

要在 UNIX 或 Linux 中删除(或配置)数据库,必须在启动 DBCA 的 shell 中设置 ORACLE_SID。在终端窗口中输入 dbca,然后单击“Welcome(欢迎使用)”页上的 “Next(下一步)”,即可启动 DBCA。要删除数据库,请执行以下步骤:

1. 在“Operations(操作)”页上,选择“Delete a Database(删除数据库)”,然后 单击“Next(下一步)”。

2. 选择要删除的数据库(本课中为 hist),然后单击“Finish(完成)”。 3. 单击“Yes(是)”确认删除。

删除数据库时会删除数据库的数据文件、重做日志文件、控制文件和初始化参数文件。 使用 DROP DATABASE 语句可删除所有控制文件及控制文件中列出的其它所有数据库 文件。要成功使用 DROP DATABASE 语句,必须符合以下所有条件: • 数据库必须已装载且已关闭。

• 必须以独占方式而不是共享模式装载数据库。 • 数据库必须装载为 RESTRICTED。 此语句的一个示例是: DROP DATABASE; DROP DATABASE 语句对归档日志文件不起作用,对数据库的副本或备份也不起作用。 最好使用 Recovery Manager (RMAN) 来删除这种文件。如果数据库保存在裸磁盘中, 则不会删除实际裸磁盘专用文件。

4 管理数据库实例和数据库存储结构

4.1 管理框架

Oracle 数据库管理框架包括以下三个主要组件: • 受管理的数据库实例

• 用于连接到数据库的监听程序

• 管理界面。这可能是数据库服务器上运行的管理代理(管理代理通过数据库服务器 连接到 Oracle Enterprise Manager Grid Control),也可能是独立的 Oracle Enterprise Manager Database Control。这个界面又称为“数据库控制台”。

必须显式启动每个组件后才能使用相应组件提供的服务,另外在关闭托管 Oracle 数据库 的服务器时必须彻底关闭组件。

要启动的第一个组件就是管理界面。激活管理界面后,可用它启动其它组件。

4.2 启动和停止 Database Control Oracle 为没有连接到 Grid Control 框架的数据库提供一种称为 Database Control 的独立管 理控制台。使用 Database Control 管理的每个数据库都单独安装了一个 Database Control, 使用一个 Database Control 只能管理一个数据库。使用 Database Control 之前,请确保 dbconsole 进程已启动。

要启动 dbconsole 进程,请使用以下命令: emctl start dbconsole 要停止 dbconsole 进程,请使用以下命令: emctl stop dbconsole 要查看 dbconsole 进程的状态,请使用以下命令: emctl status dbconsole 注:如果 $ORACLE_HOME/bin 目录不在操作系统 (OS) 路径中,则可能需要导航到此 目录。

Database Control 会使用一个服务器端代理进程。在启动或停止 dbconsole 进程后也会 自动启动和停止这个代理进程。

4.3 访问 Oracle Enterprise Manager 打开 Web 浏览器,输入以下 URL: http://host name:port number/em 如果数据库的状态为:

• 已启动:Enterprise Manager 会显示 Database Control 的“Login(登录)”页。请使 用已获得访问 Database Control 权限的用户名登录数据库。最初,用户名为 SYS、 SYSMAN 或 SYSTEM。请使用在数据库安装期间为帐户指定的口令。在“Connect As (连接身份)”选项中,选择具有特定数据库管理权限的 SYSDBA 或 SYSOPER 登 录到数据库。

• 已关闭:Enterprise Manager 会显示“Startup/Shutdown and Perform Recovery(启动/ 关闭和执行恢复)”页。这种情况下,请单击“Startup/Shutdown(启动/关闭)” 按钮。然后,系统会提示您输入主机和目标数据库的登录用户名和口令,这些是必 须输入的内容。

注:如果启动 Enterprise Manager 时出现了问题,请确保启动监听程序。

4.4 使用 SQL*Plus 和 和 iSQL*Plus 访问数据库

除了 Oracle Enterprise Manager 外,还可以使用其它 Oracle 工具(如 SQL*Plus 和

iSQL*Plus)发出 SQL 语句。使用这些工具可执行很多数据库管理操作,还可在数据库中 选择、插入、更新或删除数据。

4.5 使用 iSQL*Plus iSQL*Plus 是一个基于浏览器的接口,它可连到 Oracle 数据库。它是 SQL*Plus 产品中的 一个组件。必须先启动 iSQL*Plus 的服务器端监听程序进程才能与浏览器连接。要启动 此服务器进程,请使用: isqlplusctl start 启动服务器进程后,通过在浏览器中输入以下 URL 连接到浏览器: http://host name:port/isqlplus iSQL*Plus 通常会使用端口号 5560,除非 Oracle Universal Installer (OUI) 检测到某个程序 正使用该端口。通过检查 $ORACLE_HOME/install/portlist.ini 可找到 iSQL*Plus 使用的端口。

使用 SQL*Plus 可以使用 SQL*Plus 的命令行界面来编写 SQL*Plus、SQL 和 PL/SQL 命令,以便: • 输入、编辑、运行、存储、检索和保存 SQL 命令和 PL/SQL 块 • 格式化、计算、存储和打印查询结果 • 列出任何表的列定义

• 向最终用户发送消息或接受来自最终用户的响应 • 执行数据库管理

要启动 SQL*Plus,请执行以下步骤: 1. 打开终端窗口。

2. 在命令行提示符下,按以下格式输入 SQL*Plus 命令: $ sqlplus /nolog 3. 输入 connect,然后输入要以其身份进行连接的用户名。 4. 出现提示后,输入该用户的口令。 SQL*Plus 启动并连接到默认数据库。

4.6 从 Shell 脚本调用 SQL*Plus 通过调用 sqlplus 并使用传递参数的操作系统脚本语法,可从 Shell 脚本或 BAT 文件 调用 SQL*Plus。

在这个示例中,先执行 SELECT、UPATE 和 COMMIT 语句,之后 SQL*Plus 将控制权返 回给操作系统。

4.7 从 SQL*Plus 调用 SQL 脚本

可以在 SQL*Plus 中调用现有的 SQL 脚本文件。可在首次调用 SQL*Plus 时在命令行中完

成此操作,如幻灯片所示。只使用“@”运算符也可以在 SQL*Plus 会话中完成此操作。 例如,输入以下内容可在已建立的 SQL*Plus 会话中运行脚本: SQL> @script.sql

4.8 数据库启动和关闭

单击启动或关闭时,系统会提示您输入用于登录主机(驻留数据库的计算机)和用于

登录数据库本身的身份证明。输入身份证明,然后单击“Advanced Options(高级选项)”,根据需要更改任何启动选项或更改关闭模式。另外,可以单击“Show SQL(显示 SQL)”来查看用于启动或关闭数据库的 SQL语句。

4.9 启动 Oracle 数据库实例

如果转到 Enterprise Manager Database Control 页时数据库尚未启动,则可单击“Startup (启动)”来执行启动。输入主机身份证明,同时可以选择启动模式。

4.10 启动 Oracle数据库实例:NOMOUNT 启动数据库实例时,请选择实例启动时所处的状态。以下方案描述了启动实例所涉及的 不同阶段。

在创建数据库期间、重新创建控制文件期间,或执行某些备份和恢复方案期间,通常只在 NOMOUNT 模式下启动实例。 启动实例涉及以下任务:

• 按以下顺序搜索 /dbs 中具有特定名称的文件:如果未找到,则搜索 spfile.ora - 如果未找到,则搜索 init.ora 这是包含实例初始化参数的文件。使用 STARTUP 指定 PFILE 参数可覆盖此 默认行为。 • 分配 SGA • 启动后台进程

• 打开 alert.log 文件和跟踪文件

注:SID 是用于标识实例的系统 ID(例如 ORCL)。

4.12 启动Oracle数据库实例:OPEN 正常的数据库操作意味着启动了实例、装载且打开了数据库。使用正常的数据库操作, 任何有效用户都可连接到数据库,而且可执行典型的数据访问操作。 打开数据库涉及以下任务: • 打开联机数据文件 • 打开联机重做日志文件

如果尝试打开数据库时任一数据文件或联机重做日志文件不存在,则 Oracle 服务器会返 回错误。

在最后这个阶段,Oracle 服务器会验证是否可以打开所有数据文件和联机重做日志文件, 还会检查数据库的一致性。如有必要,系统监视器 (SMON) 后台进程将启动实例恢复。 可以在受限模式下启动数据库实例,以便仅具有管理权限的用户可以使用该实例。要在 受限模式下启动实例,请在“Advanced Startup Options(高级启动选项)”页上选择 “Restrict access to database(限制对数据库进行访问)”选项。

4.13 关闭 Oracle 数据库实例

如果转到 Enterprise Manager Database Control 页时实例已启动,则可以通过单击 “Shutdown(关闭)”按钮来关闭实例。之后,如果单击“Advanced Options(高级 选项)”按钮,则可选择关闭模式:NORMAL、TRANSACTIONAL、IMMEDIATE、 ABORT。

4.14 使用 SQL*Plus 启动和关闭

还可以使用 SQL*Plus 执行启动和关闭,或者更改数据库的状态。要使用 SQL*Plus 完成 这些任务,必须以 SYSDBA 或 SYSOPER 身份登录。然后,使用以前介绍的 Enterprise Manager 功能的等效命令:

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ] STARTUP [FORCE] [RESTRICT] [MOUNT | OPEN | NOMOUNT] 这样,可以将启动和关闭操作作为执行数据库任务的脚本或批处理的一部分。这种情况下, 数据库需要处于特定的状态。

4.15 查看预警日志

每个数据库都有一个 alert_.log 文件。该文件位于数据库所在的服务器上, 存储在 background_dump_dest 初始化参数指定的目录中。数据库预警文件按时间 顺序记录消息和错误,包括以下内容: • 启动时使用的所有非默认初始化参数

• 发生的所有内部错误 (ORA-600)、块损坏错误 (ORA-1578) 和死锁错误 (ORA-60) • 管理操作(如 CREATE、ALTER、DROP DATABASE 和 TABLESPACE 等 SQL 语句),以及 Enterprise Manager 或 SQL*Plus 语句(STARTUP、SHUTDOWN、 ARCHIVE LOG 和 RECOVER)

• 与共享服务器和分派程序进程的功能相关的若干消息和错误 • 自动刷新实体化视图过程中发生的错误

Enterprise Manager 会监视预警日志文件,而且在发生严重错误时还会发出通知。另外, 通过浏览日志还可查看非严重的错误和说明性消息。该文件会增长到无法管理的大小。 可以时不时地备份预警文件,然后删除当前的预警文件。当数据库尝试再次写入预警 文件时,它会重新创建一个新预警文件。

4.16 动态性能视图

Oracle 数据库还维护与数据库实例的操作和性能相关的动态数据集。这些动态性能视图 建立在根据数据库服务器内的内存结构构建的虚拟表基础上。也就是说,它们不是驻留 在数据库中的常规表。因此,在装载或打开数据库之前其中的某些视图就能显示数据。 动态性能视图包括关于以下内容的信息: • 会话 • 文件状态

• 作业和任务的进度 • 锁定 • 备份状态

• 内存使用和分配 • 系统和会话参数 • SQL 执行

• 统计信息和度量

注:DICT 和 DICT_COLUMNS 视图还包含这些动态性能视图的名称。

管理数据库存储结构

Oracle Managed Files (OMF) 如果使用 Oracle Managed Files (OMF),则不需要直接管理构成 Oracle 数据库的操作系统 文件。可以根据数据库对象而不是文件名指定操作。对于以下数据库结构,可以按需要 在数据库内部使用标准文件系统接口来创建和删除文件: • 表空间

• 重做日志文件 • 控制文件 • 归档日志

• 块更改跟踪文件 • 闪回日志 • RMAN 备份

数据库可以混合包含 Oracle Managed Files 和非 Oracle Managed Files。由上面任一参数 指定的文件系统目录必须已经存在:数据库不会创建文件系统目录。该目录还必须拥有 允许数据库在其中创建文件的权限。

上面的示例显示了设置 DB_CREATE_FILE_DEST 后,可在 CREATE TABLESPACE 语句中省略 DATAFILE 子句。这样,会在 DB_CREATE_FILE_DEST 指定的位置创建 数据文件。

表空间中的空间管理

在表空间中以区为单位分配空间。创建表空间后可使用以下方法之一来跟踪空闲空间和 已用空间:

• 本地管理的表空间:在表空间中通过位图管理区。位图中的每一位对应一个块或 一组块。分配区或为重新利用空间而释放区后,Oracle 服务器通过更改位图值来 显示块的新状态。

• 字典管理的表空间:由数据字典管理区。每当分配或取消分配区后,Oracle 服务器 会更新数据字典中的相应表。这是为了实现向后兼容;建议使用本地管理的表空间。

浏览存储结构

逻辑数据结构存储在数据库的物理文件中。通过 Enterprise Manager 可很方便地查看数据 库的逻辑结构。通过单击“Administration(管理)”页的“Storage(存储)”区域中的 链接,可以获得关于每种结构的详细信息。

创建新表空间

要创建一个表空间,请执行以下步骤:

1. 单击“Administration(管理)”标签,然后单击“Storage(存储)”标题下的 “Tablespaces(表空间)”。 2. 单击“Create(创建)”。

注:如果要创建与现有表空间类似的表空间,请选择一个现有表空间,然后从

“Actions(操作)”菜单中选择“Create Like(类似创建)”。单击“Go(开始)”。 此时会出现“Create Tablespace(创建表空间)”页。 3. 输入表空间的名称。

4. 在“Extent Management(区管理)”标题下,选择“Locally Managed(本地管理)”。 Oracle 数据库服务器在表空间中可以有效地管理本地管理表空间中的区。若采用字典 管理的表空间,则必须更积极地管理区,而且需要具有对数据字典的访问权限才能跟 踪这些区。字典管理的表空间已被逐渐淘汰。Oracle 不建议使用字典管理的表空间。 5. 在“Type(类型)”标题下,选择“Permanent(永久)”。永久表空间会存储系统 或用户创建的永久数据库对象。

6. 在“Status(状态)”标题下,选择“Read Write(读写)”。选择“读写”状态表 示创建表空间后,用户可以对表空间进行读写操作。这是默认设置。

7. 在该页的“Datafiles(数据文件)”区域,单击“Add(添加)”将数据文件添加到 表空间;每个表空间必须至少有一个文件。大文件表空间与超大型数据库配合使用, 在这些数据库中,Oracle 的 Automatic Storage Management (ASM) 或其它逻辑卷管理 器支持条带化或独立磁盘冗余阵列 (RAID),还支持动态扩展逻辑卷。

8. 在“Add Datafiles(添加数据文件)”页上输入一个文件名。接受默认的“File Directory(文件目录)”,然后输入文件大小。

9. 在“Storage(存储)”区域中,可以选择“Automatically extend datafile when full (AUTOEXTEND)(数据文件已满时自动扩展)”,然后在“Increment(增量)” 字段中指定一个数量。这样,每次数据文件超出空间后都会自动进行扩展。当然, 数据文件受限于其所在的物理介质。将“Maximum File Size(最大文件大小)” 设置为“Unlimited(无限制)”。单击“OK(确定)”。此时会返回“Create Tablespace(创建表空间)”页。

10. 单击“Storage(存储)”标签。此时会出现“Edit Tablespace(编辑表)”页。 11. 接受“Storage(存储)”页上的所有默认值。

注:这些步骤旨在说明如何针对大多数情况快速创建表空间。可能需要更改某些选项, 这取决于具体的需求。

本地管理表空间的存储

可通过以下两种方式之一分配本地管理表空间中的区:

• Automatic (自动):又称为自动分配,这种方式指定表空间中的区大小由系统管理。 您不能指定区大小。不能为临时表空间指定“Automatic(自动)”。

• Uniform (统一):这种方式指定使用指定的统一区大小管理表空间。默认大小为 1 MB。临时表空间的所有区都是统一的,而且采用默认值。不能为还原表空间指定

第4篇:Oracle数据库的备份方法

1、引言

Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统。比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。本文主要就用export实用程序导出数据库对象、Oracle冷备份、Oracle热备份这三种最基本的备份方法进行详细的探讨,分析各自的优缺点和适用的场合,并给出自动执行这些备份方案的脚本文件。

2、三种备份方案的比较

2.1 冷备份

冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。

优点:能简单快速地备份。能简单快速地恢复。执行简单。 缺点:必须关闭数据库,不能进行点恢复。

2.2 热备份

热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。

优点:备份时数据库可以是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。

缺点:执行过程复杂。由于数据库不间断运行,测试比较困难。不能用操作系统实用工具拷贝打开的文件。必须使用Oracle提供的ocopy工具来拷贝打开的文件。热备份可能造成CPU、I/O过载,应在数据库不太忙时进行。

2.3 Export导出数据库对象

冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而export备份的是数据库对象,因此被称为逻辑备份。

优点:能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。

缺点:export并不是冷备份和热备份的替代工具。冷、热备份可保护介质失效。export备份可保护用户或应用错误。

3、冷备份方案的实施

3.1 冷备份数据库的步骤

(1)关闭数据库;

(2)备份所有相关的数据库文件:初始化参数文件、控制文件(可用select

第1页

name from v$controlfile;列出所有控制文件)、数据文件(可用select name from v$datafile;列出所有数据文件)、Redo日志(可用select member from v$logfile;列出所有redo日志文件)、归档的Redo日志(可用select sequence#,first_time from v$loghist;列出所有归档redo日志文件的顺序号和产生时间)。

3.2 冷备份数据库的脚本文件

coldbackup.bat

4、热备份方案的实施

4.1 热备份数据库的前提条件:数据库运行在归档模式

Oracle数据库的redo日志记录在数据库上进行的所有活动。LGWR后台进程以一种循环方式写这些日志文件,从第一个redo日志到下一个,直到该组的最后一个,然后由从第一个日志写起。

在非归档模式下,当循环写到最后一个日志文件后,就重写第一个日志。因此,非归档模式下唯一的数据库恢复办法就是使用冷备份。

在归档模式下,当redo日志满时,一个ARCH后台进程就读取全部redo日志,然后将其写到归档日志。因此,可以使用热备份和点恢复。在归档日志模式下,如果归档日志目的空间已满,数据库活动将暂时停止,只有释放一些空间后,数据库才能继续运行。通常,background_dump_destination将产生一个跟踪文件来显示归档方面的问题。

Oracle数据库安装默认运行在非归档模式,通过以下步骤可以从非归档模式转换为归档模式:

(1)编辑参数文件init.ora,设置以下参数 # 设置数据库自动归档 log_archive_start = true

# 设置归档日志文件的目录,该目录必须事先已建立,并有大量可利用的空间

log_archive_dest_1="location=%oracle_base% oradata%oracle_sid%archive" # 设置归档日志文件名的格式。%s表示顺序号,%t表示线程号。 log_archive_format = "%oracle_sid%%T%S.ARC" (2)在sqlplus上运行以下命令 sqlplus>;connect sys/qazwsx as sysdba sqlplus>;shutdown immediate; sqlplus>;startup mount exclusive; sqlplus>;alter database archivelog; sqlplus>;alter database open; sqlplus>;shutdown immediate; (3)执行数据库冷备份

当数据库运行在归档模式下,数据库恢复过程要求使用冷备份时,归档日志是必需的。

(4)正常启动数据库,并确认数据库运行在归档模式 sqlplus>; startup;

第2页

sqlplus>; select * from v$database; 其log_mode会显示数据库是否归档模式 sqlplus>; archive log list; 也会显示数据库是否归档模式

如果Oracle数据库运行在归档模式,当进行数据库维护时,可能需要暂停数据库的归档,在完成维护后,再重新启动归档模式。通过以下步骤可以从归档模式转换为非归档模式:

sqlplus>;connect sys/qazwsx as sysdba sqlplus>;shutdown immediate; sqlplus>;startup mount exclusive; sqlplus>;alter database noarchivelog; sqlplus>;alter database open;

sqlplus>; select * from v$database; 其log_mode会显示数据库是否归档模式 sqlplus>; archive log list; 也会显示数据库是否归档模式

4.2 热备份数据库的步骤

(1)拷贝init.ora文件到备份目录(参数文件在数据库启动后处于关闭状态)。 (2)将需要备份的某个表空间置于开始备份模式。

(3)使用ocopy.exe拷贝表空间,然后将该表空间置于结束备份模式中(ocopy.exe不能用于直接拷贝联机的数据库文件)。

(4)对数据库中的每个表空间执行步骤2和3(可以通过视图dba_tablespaces和v$datafile查看数据库中有哪些表空间和数据文件)。

(5)通过在sqlplus上执行archive log list命令获取当前的日志顺序号,从oldest online log sequence开始到current log sequence的联机redo日志应该是热备份的一部分。

(6)在sqlplus上执行alter system switch logfile;命令来强迫日志切换,以便所有的日志都被归档。

(7)使用alter database backup controlfile to trace;命令获得控制文件的一个备份,可以到%oracle_base%admin%oracle_sid%udump目录中寻找最新的跟踪文件,其中有重建控制文件的全部命令。

(8)使用windows nt的命令从%log_archive_dest%中拷贝归档的日志文件到备份目录。

4.3 热备份数据库的脚本文件

hotbackup.bat

5、使用export作为备份策略

5.1 export的命令选项说明

Oracle数据库的exp工具提供tables、users、full database、tablespace四种级别的导出方式,把指定的数据库内容导出到一个或者多个oracle二进制文件中,该文件只允许用imp工具来读取,imp的命令选项可用imp help=y来查阅。 您可以通过输入 EXP 命令以及各种自变量来控制“导出”的运行方式。要指定参数,您可以使用关键字:

格式:EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

第3页

实例:EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) 或 TABLES=(T11,T12),如果 T1 是分区表 USERID 必须是命令行中的第一个参数。

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N) TABLESPACES 将传输的表空间列表

5.2 export备份数据库的脚本文件

expbackup.bat

6、各种备份策略的自动执行方法

不管是冷备份、热备份,还是export备份;不管是unix平台,还是windows平台,都可以利用at命令来定时、自动执行上述备份策略。AT 命令安排在特定日期和时间运行命令和程序,在windows nt平台上必须首先运行调度服务(schedule),才能使用at命令。

AT命令用法如下:

AT [computername] [ [id] [/DELETE] | /DELETE [/YES]] AT [computername] time [/INTERACTIVE] [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

computername 指定远程计算机。如果省略这个参数,会计划在本地计算机上运行命令。

id 指定给已计划命令的识别号。

/delete 删除某个已计划的命令。如果省略 id,计算机上所有已计划的命令都会被删除。

/yes 不需要进一步确认时,跟删除所有作业的命令一起使用。 time 指定运行命令的时间。

/interactive 允许作业在运行时,与当时登录的用户桌面进行交互。

/every:date[,...] 每个月或每个星期在指定的日期运行命令。如果省略日期,则默认为在每月的本日运行。

/next:date[,...] 指定在下一个指定日期(如下周四)运行命令。如果省略日期,则默认为在每月的本日运行。

"command" 准备运行的 Windows NT 命令或批处理程序。 举例如下:

(1) 每周五19:00执行冷备份 at 19:00 /every:F "coldbak.cmd" (2) 每周二20:00执行热备份 at 20:00 /every:T "coldbak.cmd"

(3) 每周

一、

二、

三、

四、五21:00执行export备份 at 20:00 /every:M,T,W,Th,F "expbak.cmd"

第4页

第5篇:ORACLE数据库学习心得大全

ORACLE数据库结课论文

一个好的程序,必然联系着一个庞大的数据库网路...

今年我们学习了 oracle数据库这门课程,起初的我,对这个字眼是要多陌生有多陌生,后来上课的时候听一会老师讲课,偶尔再跟上上机课,渐渐的学会了不少东西,但我感觉,我学到的仍是一些皮毛而已,怀着疑惑和求知的心态,我在网上搜索了关于 oracle数据库的一些知识。

1.ORACLE的特点: 可移植性 ORACLE采用C语言开发而成,故产品与硬件和操作系统具有很强的独立性。从大型机到微机上都可运行ORACLE的产品。可在UNIX、DOS、Windows等操作系统上运行。可兼容性 由于采用了国际标准的数据查询语言SQL,与IBM的SQL/DS、DB2等均兼容。并提供读取其它数据库文件的间接方法。

可联结性 对于不同通信协议,不同机型及不同操作系统组成的网络也可以运行ORAˉCLE数据库产品。

2.ORACLE的总体结构

(1)ORACLE的文件结构 一个ORACLE数据库系统包括以下5类文件:ORACLE RDBMS的代码文件。

数据文件 一个数据库可有一个或多个数据文件,每个数据文件可以存有一个或多个表、视图、索引等信息。

日志文件 须有两个或两个以上,用来记录所有数据库的变化,用于数据库的恢复。控制文件 可以有备份,采用多个备份控制文件是为了防止控制文件的损坏。参数文件 含有数据库例程起时所需的配置参数。

(2)ORACLE的内存结构 一个ORACLE例程拥有一个系统全程区(SGA)和一组程序全程区(PGA)。

SGA(System Global Area)包括数据库缓冲区、日志缓冲区及共享区域。

PGA(Program Global Area)是每一个Server进程有一个。一个Server进程起动时,就为其分配一个PGA区,以存放数据及控制信息。

(3)ORACLE的进程结构ORACLE包括三类进程: ①用户进程 用来执行用户应用程序的。

②服务进程 处理与之相连的一组用户进程的请求。

③后台进程 ORACLE为每一个数据库例程创建一组后台进程,它为所有的用户进程服务,其中包括: DBWR(Database Writer)进程,负责把已修改的数据块从数据库缓冲区写到数据库中。LGWR(Log Writer)进程,负责把日志从SGA中的缓冲区中写到日志文件中。

SMON(System Moniter)进程,该进程有规律地扫描SAG进程信息,注销失败的数据库例程,回收不再使用的内存空间。PMON(Process Moniter)进程,当一用户进程异常结束时,该进程负责恢复未完成的事务,注销失败的用户进程,释放用户进程占用的资源。 ARCH(ARCHIVER)进程。每当联机日志文件写满时,该进程将其拷贝到归档存储设备上。另外还包括分布式DB中事务恢复进程RECO和对服务进程与用户进程进行匹配的Dnnn进程等。

3.ORACLE的逻辑结构

构成ORACLE的数据库的逻辑结构包括: (1)表空间

(2)5种类型的段(segment)

①数据段;②索引段;③回滚(rollbock)段;④临时段;⑤自举(bootstrap)段。

段的分配单位叫范围(Extent)

表空间(Tablespace) 一个数据库划分成的若干逻辑部分称为表空间。一个数据库可以有一个或多个表空间,初始的表空间命名为SYSTEM,每一个逻辑表空间对应于一个或多个物理文件。DBA使用表空间做以下工作: 控制数据库对象,如表、索引和临时段的空间分配。为数据库用户设置空间配额。

利用个别表空间的在线或离线,控制数据的可用性。后备或恢复数据。

通过分配空间,以改进性能。

在每个数据库中都存在SYSTEM表空间,它在建立数据库时自动建立。在该表空间中,包含数据库的数据字典,其中存储全部数据库对象的名字和位置。 SYSTEM表空间总是在线的,像其它表空间一样,可以通过增加新的数据库文件来扩大。一个表空间可包含许多表和索引。但一个表和索引不能跨越表空间,可跨越组成表空间的文件。在DB的打开的情况下,DBA利用ALTER TABLESPACE语句,可以实施表空间的在线或离线。SYSTEM表空间必须在线。表空间离线有下列原因: 一般为了使部分数据库不能使用,而允许正常存取数据库其余部分。执行表空间离线备份。

一个离线的表空间,不能被应用用户读或编辑。

可以增加数据文件扩大已有的表空间,也可增加新的表空间使数据库容量增大,或分配空间给某个应用。使用ALFER TABLESPACE ADD FILE语句将另一个数据文件加入到已存在表空间中。使用CREATE TABLESPACE语句可建立一个新的表空间。段(segment) 表空间中的全部数据存储在以段划分的数据库空间中。一个段是分配给数据库用于数据存储的范围的集合。数据可以是表、索引或RDBMS所需要的临时数据。段是表空间的下一个逻辑存储的级别。一个段不能跨越一个表空间,但可跨越表空间内的文件。一个数据库最多需要五种段类型: 数据段 一个包含一个表(或聚集)的全部数据,一个表(或聚集)总有一个单个数据段。

索引段 一个索引段包含对一个表(或聚集)建立的一个索引的全部索引数据。一个表可以有一个、多个或者没有索引段,取决于它所拥有的索引个数。一个聚集必须至少有一个索引段,即在聚集码上建立聚集索引。

回滚段 每个DB有一个或多个回滚段。一个回滚段是DB的一部分,它记录在某一情况下被撤消的动作。回滚段用于事务控制和恢复。

临时段 在处理查询时,ORACLE需要临时工作空间,用于存储语句处理的中间结果,这个区称为临时段。

自举段 自举段在SYSTEM表空间中,在数据库建立时建立。它包括数据字典定义,在数据库打开时装入。

4.用户数据库对象

由用户建立的对象驻留在表空间中,含有真正的数据。数据库对象有表、视图、聚集、索引、伪列和序号生成器。

(1)聚集(Cluster) 聚集是存储数据的一种可选择的方法。聚集包括存储在一起的一组表,它们共享公共列并经常一起使用。由于内容相关并且物理地存储在一起,存取时间得到改进,存储空间可以减少。聚集是一种优化措施。

聚集对性能的改进,依赖于数据的分布和SQL操作的内容。特别是使用聚集对连接非常有利。可以明显地提高连接的速度。建立聚集命令的基本格式: SQL>CREATE CLUSTER〈聚集名〉(列定义[,…]);利用聚集建立表命令基本格式: SQL>CREATE TABLE〈新表名〉(列定义[,…]CLUSTER〈聚集名〉(聚集列); 在聚集码上必须建立一个聚集索引,对于每一数据块上每个聚集码值有一索引项。这个索引必须在DML语句对聚集表操作前建立。建立索引的语句是:CREATE INDEX索引名ON CLUSTER聚集名; (2)序号生成器 序号(SEQUENCE)生成器为表中的单列或多列生成顺序号。利用序号可自动地生成唯一主码。使用SQL语句定义序号,给出一些信息(如序号名、是升序或降序、每个序号间的间隔和其它信息)。所有序号存储在数据字典表中。

所有序号定义存储在数据字典的SEQUENCE表中。用户可以通过字典视图

USER-SE-QUENCES、ALL-SEQUENCES

和DBA-SEQUENCES查询和存取。建立序号生成器的语句是: CREATE SEQUENCE序号生成器名 其它选项。

一旦序号生成器S被定义。可用S.Currval来引用S序号生成器的当前值。用S.nextval产生下一个新的序号并加以引用。

(3)伪列 伪列的行为像表的一列,但不真正存在于表中,在查询时可引用伪列,但伪列不能插入、删除或修改。

5.数据字典

数据字典ORACLE RDBMS最重要的部分之一。数据字典含有一组系统定义的表,只能读,是关于数据库的引用指南。它可提供以下信息:ORACLE用户的用户名; 每个用户被授予的权限和角色;实体的名字和定义;完整性约束 为数据库实体分配的空间;通用的数据库结构;审计信息; 触发子程序等的存储。 数据字典是以表和视图构成的,像其它数据库数据一样,可用SQL语言查询数据字典。

数据字典在DB建立时建立。每当DB进入操作,数据字典就由ORACLE RDBMS负责修改。数据库建立时有两个默认DBA用户:SYS、SYSTEM。SYS持有基本表中的数据。数据字典包含一组基表和相关的视图,可分为以下几类: 类

描 述

DBA-××× 只有DBA可存取的视图,给出数据库中定义的任何实体的信息

USER-××× 对任何用户可用的视图,给出他们自己的实体的信息

ALL-×××

对任何用户可用的视图,给出用户可存取的所有实体的信息

其中×××代表表名或视图名

下面列出的是一些常用的表或视图的名称。 (1)DTAB 描述了组或数据字典的所有表。 (2)TAB 用户建的所有基本表、视图和同义词。 (3)COL 用户创建基本表的所有列的信息。

(4)SYNONYMS 用户可存取的同义名词、专用名和公用名。 (5)CATALOG 用户可存取的表、视图、同义词、序列。 (6)CONSTRAINTS 用户可存取的约束。 (7)INDEXES 用户可存取的表和聚集的序列。 (8)OBJECTS 用户可存取的对象。 (9)TABLES 用户可存取的表。 (10)USERS 查看当前全部用户。 (11)VIEWS 查看用户可存取的视图。

(12)SYSTABAUTH 用户对数据对象的使用权限。可以用SQL>SELECT*FROM〈字典表名或视图名〉WHERE〈条件〉来读取有关信息。

可以用SQL>DESCRIBE〈表名〉来查看表的结构定义。但是数据库字典的结构不可改。用DESCRIBE命令还可以查看视图及过程的定义。

6.ORACLE的SQL、PL/SQL与SQL*PLUS 作为ORACLE数据库核心的SQL语言是ANSI和ISO的标准SQL的扩充。用来存储、检索和维护数据库中的信息,并控制对数据库的存取事务。由于RDBMS执行SQL语句时,是一次只执行一条语句,它是非过程化的。这就使得单条的SQL语句使用方便,功能强大。用户只需说明操作目的,不必关心具体操作的实现方法。

但在实际数据库应用开发中,往往要依据前一步对数据库操作的结果或上一个事务提交的情况来确定下一步的操作。故ORACLE推出了一种PL/SQL工具,它扩充了SQL语句,使之具有可进行过程化编程的能力,如循环、分支功能。PL/SQL可支持变量和常量的使用。例如在SELECT查询语句的where子句中可以使用变量来书写条件表达式。 SQL*PLUS是ORACLE用来存储、查询、操纵、控制和报告数据库中信息的一个交互式工具。它是一种集编辑、调试、运行于一体的开发环境。在SQL*PLUS的这种运行环境下,既可以使用SQL命令、PL/SQL语句、及SQL*PLUS自己提供的命令,又可以运行由上述三类命令(或语句)编辑而成的命令文件。SQL*PLUS提供的附加命令主要用来编辑、运行上述三类命令及命令文件和对查询结果进行格式化输出等功能。

7.数据库系统的管理

ORACLE作为一个大型的数据系统,通常包含很多用户的数据。在应用开发过程中,有许许多多的各类人员进行开发和应用。所以必须要求有人对数据库系统进行临时管理,并进行数据的备份等工作。这种人被称为数据库管理员(Data Base Administrator)。他们必须理解数据库系统管理,清楚数据库包含的数据内容、运行状况等。

一般说来,DBA不是指具体的人,而是指对数据库可以行使DBA特权的用户。DBA具有如下责任: (1)ORACLE服务器和客户工作站软件的安装和升级; (2)创建基本的数据库存储结构(表空间); (3)创建基本的数据库客体(表、视图、索引); (4)修改数据库结构; (5)给用户授权,维护系统安全; (6)控制和管理用户对数据库的访问; (7)监视和优化数据库的性能; (8)计算数据库信息的后备和恢复; (9)后备和恢复数据库; (10)构造ORACLE服务器,如创建数据库链、客体同义词等。 而应用开发人员须完成: (1)应用程序设计; (2)应用的数据库结构设计和修改; (3)为DBA提供必要的信息; (4)完成应用程序的开发。

看了许多关于ORACLE的知识论坛,总算是对ORACLE有个整体的认识,不仅仅是拘泥于课堂上学习的知识而已,虽然自己对ORACLE学习并不是多么的透彻,但是总归多接触点新的东西总是好的。

这一个学期,也是临近毕业的时候了,很感谢贾老师的严格要求,让我在学习上有了很大的进步,同时也改掉了一些惰性,能积极的投入到学习中去了,不懂就大胆的问同学,请学习好的同学帮助讲解, 最后,真心的祝福贾老师工作顺利,身体健康!

第6篇:Oracle数据库备份和恢复论文

摘要:本文从Oracle的体系结构开始,由原理到实践,论述了Oracle数据库备份的方式和策略。包括IMp/EXp, RMAN,OS备份等。

Abstract: Starting from the architecture of ORACLE, this paper discusses the backup method and strategy of database Oracle, including IMp/EXp, pMAN and OS theoretically and practically.

关键字:Oracle, 备份, 恢复, RMAN

Keywords: Oracle; Backup; Restoration; RMAN

概述

在大型软件运行系统中,存在着很多备份策略,如RAID技术,CLUSTER技术等等。很多时候,这些系统的备份就能够解决数据库备份的问题。但是,这种备份成本很高。同时,硬件的备份有时根本满足不了现实的需要,如果用户不小心误删了一个表,又想恢复的时候,数据库的备份就变的重要了。

Introduction: In the running system of some big software, there exist many backup strategies such as RAID technology and CLUSTER technology etc. In most cases, these system backup strategies can fulfill the database backup. However the cost is rather high. At the same time, hardware backup sometimes is far from the actual requirement. The database backup becomes very important when a table is deleted by accident and needs to be restored.

Oracle的运行方式

Oracle数据库有两种运行方式:一是归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复数据库,可以保证不丢失任何已提交的数据;二是不归档方式(NOARCHIVELOG),只能恢复数据库到最近的回收点(冷备份或是逻辑备份)。根据数据库的高可用性和用户可承受丢失的工作量的多少,对于实时性要求高的数据库,强烈要求采用为归档方式;不归档方式只用在那些开发和调试的数据库等。

如何改变数据库的运行方式,在创建数据库时,作为创建数据库的一部分,就决定了数据库初始的存档方式。一般情况下为NOARCHIVELOG方式。当数据库创建好以后,根据我们的需要把需要运行在归档方式的数据库改成ARCHIVELOG方式。 操作如下。

1. 关闭数据库,备份已有的数据,改变数据库的运行方式是对数据库的重要改动,所以要对数据库做备份,对可能出现的问题作出保护。

2. 修改初试化参数,使能自动存档。

修改(添加)初始化文件init[SID].ora参数:

log_archive_start=true #启动自动归档

log_archive_format=ARC%T%S.arc #归档文件格式

log_archive_dest=/archdir/arch #归档路径

在8i中,可以最多有五个归档路径,并可以归档到其它服务器,如备用数据库(standby database)服务器。

3. 启动Instance到Mount状态,即加载数据库但不打开数据库。

$> svrmgrl

SVRMGRL> connect internal

SVRMGRL> startup mount

SVRMGRL> alter database archivelog; // 使数据库运行在归档方式

SVRMGRL> alter database open;

Oracle的备份方案

按照备份的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其中冷备份与热备份又可以合称为物理备份。按照备份的工具,可以分为EXp/IMp备份、操作系统备份、RMAN、第三方工具备份,如VERITAS等。下面分别介绍Oracle本身提供的几种备份工具和操作。

1. EXp/IMp备份(逻辑备份)

EXp/IMp属于逻辑备份的范畴,逻辑备份是指只备份数据库中的数据但不记录数据物理位置的一种备份。导出为数据库作一个二进制的备份,并且这个备份只能由其姊妹程序imp(import)来读取。具体的使用方法如下。(因为EXp和IMp使用上参数基本相同,所以只以EXp为例。)

EXp的命令格式和参数

格式:KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例程: EXp SCOTT/TIGER GRANTS=Y TABLES=(EMp,DEpT,MGR)

USERID 必须是命令行中的第一个参数

关键字 说明(默认) 关键字 说明(默认)

USERID 用户名/口令 FULL 导出整个文件 (N)

BUFFER 数据缓冲区的大小 OWNER 所有者用户名列表

FILE 输出文件 (EXpDAT.DMp) TABLES 表名列表

COMpRESS 导入一个范围 (Y) RECORDLENGTH IO记录的长度

GRANTS 导出权限 (Y) INCTYpE 增量导出类型

INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)

ROWS 导出数据行(Y) pARFILE 参数文件名

CONSTRAINTS 导出限制 (Y) CONSISTENT 交叉表一致性

LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)

DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)

FEEDBACK 显示每 x 行 (0) 的进度 FILESIZE 各转储文件的最大尺寸

QUERY 选定导出表子集的子句

注:可以通过exp -help命令查看exp的使用方法;imp -help命令查看imp的使用方法.

2. 操作系统备份(冷备份和热备份)

操作系统备份有两类,冷备份(Cold backup)和热备份(Hot backup)。操作系统备份和上面的逻辑备份有本质的区别,它将拷贝整个的数据文件。

冷备份

在文件级备份开始前数据库必须彻底关闭。关闭操作必须用带有normal、immediate、transaction选项的shutdown来执行。

数据库使用的每个文件都被备份下来,这些文件包括: 所有数据文件、所有控制文件、所有联机重做日志文件和INIT.ORA文件(建议)。

作冷备份一般步骤是:

1) 正常关闭要备份的实例(instance);

2) 备份整个数据库到一个目录

3) 启动数据库

即:

SVRMGRL>connect internal

SVRMGRL >shutdown immediate

SVRMGRL >!cp

or

SVRMGRL >!tar cvf /dbbak/fullbk.tar /u01/oracle/oradata/dbname

SVRMGRL >startup

热备份

热备份是当数据库打开时的操作系统备份。热备份只能用于ARCHIVELOG方式的数据库。热备份没有必要备份联机日志,但必须是归档状态,在实例恢复的时候,可能需要用到归档日志。当前联机日志一定要保护好或是处于镜相状态,当前联机日志的损坏,对于数据库的损坏是巨大的,只能以数据的丢失来进行数据库的恢复工作。对于临时表空间,存放的是临时信息,在热备份是也可以考虑不用备份,如果临时文件发生故障,可以删除该数据文件与表空间,重建一个临时表空间。

热备份备份的内容和冷备份备份的内容一样,操作一般步骤是:

1) 备份的表空间通过使用ALTER TABLESpACE …… BEGIN BACKUp使表空间进入热备份方式。

2) 用类似冷备份的操作系统命令对组成表空间的数据文件进行拷贝。

3) 使用ALTER TABLESpACE …… END BACKUp命令使表空间脱离热备份方式。

4) 使用ALTER DATABSE …… BACKUp CONTROLFILE命令备份控制文件。

即:

SVRMGRL>connect internal;

SVRMGRL>alter tablespace User begin backup;

SVRMGRL>!cp /u01/oradata/dbname/user01.ora /dbbak/user01.ora

SVRMGRL>alter tablespace User end backup;

SVRMGRL>alter database backup controlfile to ;

or

SVRMGRL>alter database backup controlfile to trace;

注意:因为热备份的时候,用户还在操作数据库,所以最好是让每个表空间处于备份状态的时间最短,这样就要求一个表空间一个表空间的备份,不要一起使表空间处于备份状态而同时拷贝数据文件。

3. RMAN

Recovery Manager(RMAN)是一个使DBA能很方便地对数据库执行备份和恢复任务的Oracle应用工具,能够提供DBA对企业数据库备份与恢复操作的集中控制。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,其中包括表空间、数据文件,控制文件和归档文件。RMAN可以按要求存取和执行备份和恢复。

RMAN支持六种不通的类型的备份,经常用到的有两种:

FULL 数据库全备份,包括所有的数据块。

INCREMENTAL 增量备份,是指只备份在同级别或更低级别上进行的前一次备份之后的作过改动的那些数据块。这其中需要一个0级的增量作为增量的基础,它备份包括全部曾经被数据库使用过的数据块(但不是完全数据库备份)。RMAN共可以支持7级增量。

BACKUp,RESTORE,RECOVER是RMAN最基本的三个命令,分别可以进行数据库的备份,复原以及恢复操作。 restore命令用于恢复来自备份集或映像拷贝的数据文件、控制文件或归档重做日志。recovery命令用于进行介质恢复应用重做日志文件。

RMAN的备份信息一般保存在恢复目录中,恢复目录也是一个数据库,只不过这个数据库用来保存备份信息,一个恢复目录可以用来保存多个数据库的备份信息。 RMAN也可以在没有恢复目录(NOCATALOG)下运行,这个时候备份信息保存在控制文件。这种情况比较危险,因为一旦控制文件被破坏,将导致所有数据库备份信息的丢失和恢复的失败,而且,没有恢复目录,很多RMAN的命令将不被支持。所以对于重要的数据库,建议创建恢复目录。

创建恢复目录一般有以下步骤。(例子数据库为db)

1) 为目录创建一个单独的表空间

SQL>create tablespace tsrman datafile ’/dbbak/rman/rsrman.dbf’ size 50M;

2) 创建RMAN用户

SQL>create user rman identified by rman default tablespace rsrman temporary tablespace temp;

3) 给RMAN授予权限

SQL>grant connect, resource, recovery_catalog_owner to rman;

4) 打开RMAN

$rman

5) 连接恢复目录数据库

RMAN>connect catalog rman/rman@db

6) 创建恢复目录

RMAN>create catalog tablespace tsrman 在对某个数据库进行备份之前,必须先在恢复目录上注册该数据库,这一过程操作如下(假定目标数据库连接字符串为db100)。

1) 连接到恢复目录数据库

$rman rman/rman@db

2) 在RMAN中连接到目标数据库(即要进行备份的数据库)

RMAN>connect target sys/change_on_install@db100

3) 注册数据库

RMAN>register database;

注册完数据库后,就可以进行数据库的备份了。有完全数据库备份、表空间备份、控制文件备份、和归档日志备份等。操作分别如下。

1) 完全数据库备份

要求:ARCHIVELOG模式,在DB OpEN的情况下进行数据库完全备份。

RMAN>run{

allocate channel c1 type=disk;

backup database;

release channel c1;

}

2) 表空间备份

要求:ARCHIVELOG模式

RMAN>run{

allocate channel c1 type=disk;

backup tablespace “ts_users” filesperset 3 format ‘aatst_%t%s.%p’;

release channel c1;

}

3) 控制文件备份

RMAN>run{

allocate channel c1 type=disk;

backup current controlfile tag=weekly_sat_backup;

release channel c1;

}

在对数据库进行完全备份时,控制文件自动包含其中。也可以在表空间或数据文件的备份中包含一个控制文件。

RMAN>run{

allocate channel c1 type=disk;

backup tablespace “ts_users”

filesperset 3 format ‘aatst_%t%s.%p’;

include current controlfile;

release channel c1;

}

4) 归档日志备份

通过查询数据字典表V$ARCHIVED_LOG获取要备份的日志序列号,然后执行命令:

RMAN>run{

allocate channel c1 type=disk;

backup archivelog low logseq 3 high logseq 10 thread 1;

release channel c1;

}

Oracle的备份策略

正确的备份策略不仅能保证数据库服务器的24*7的高性能的运行,还能保证备份与恢复的快速性与可靠性。我们将以RMAN的多级增量备份作为一个备份策略的例子来讨论。采用多级备份就是为了减少每天备份所需要的时间,而又保证系统有良好的恢复性。恢复时间与备份时间要有一个权衡。比如只要进行一个数据库的全备份,然后就只备份归档也可以保证能把数据库恢复到最新的状态,但是这样的恢复时间将是不可容忍的。多级备份也正是为了解决这种问题,结合某些应用的特点,可以采用如下的备份策略:

每个月做一个数据库的全备份(包括所有的数据和只读表空间);

每个星期一做一次零级备份(不包含只读表空间);

每个星期三做一次一级备份;

每天做一次二级备份。

每天做一次恢复目录的热备份。

任何数据库的更改需要重新同步CATALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读)。

每次备份后都可以备份归档日志或定期备份归档日志。如果可能,可以直接备份到磁带上。

Oracle的恢复

下面的操作约定恢复目录存储在db118中,目标数据库是db100。

1. 数据库恢复

1) 启动SQL*pLUS,使用正确的init.ora文件,使用NOMOUNT选项启动目标数据库实例。

2) 启动RMAN并连接到恢复目录,如下:

$rman catalog rman/rman@db118

恢复管理器: Release 9.2.0.1.0production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

连接到恢复目录数据库

RMAN>

3) 连接到目标数据库

RMAN>connect target internal/oracle@demo.oracle

连接到目标数据库: db (DBID=1142471523)

4) 一旦连接到目标数据库,执行restore命令恢复控制文件

RMAN>run{

2>allocate channel c1 type disk;

3>restore controlfile;

4>}

小结

保证Oracle数据库的安全是系统安全的重要组成部分,必须要设计完善的数据库备份和恢复方案。Oracle提供的各种工具结合起来使用能够使数据库的备份和恢复变得简单。在实际的Oracle数据库的备份和恢复中,会有许多不通的和复杂的情况出现,针对不同的情况,要本着使数据具有最大的可恢复性和恢复时间最短的原则去进行数据库的恢复,这需要大量的实践和经验积累。

参考文献

[1] Oracle8i Backup and Recovery Guide Oracle Document

[2] Oracle8i Recovery Manager User’s Guide and Reference Oracle Document

[3] Oracle9i:A Beginner’s Guide (美) Michael Abbey Michael Corey Ian Abramson 2002.3 机械工业出版社

[4] Oracle8i备份与恢复手册 (美)Rama Velpuri Anand Adkoli 蒋蕊 王磊等译 2001.9 机械工业出版社

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:iwenmi@163.com。举报文章