Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Oracle 数据库实例的数据库管理员常见数据库任务

本部分介绍了如何在运行 Oracle 的 Amazon RDS 数据库实例上执行与数据库相关的数据库管理员常见任务。为了提供托管服务体验,Amazon RDS 不允许通过 shell 访问数据库实例,而仅限访问某些需要高级特权的系统过程和表。

更改数据库的全局名称

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.rename_global_name 更改数据库的全局名称。rename_global_name 过程具有以下参数。

参数名称 数据类型 默认值 必需 描述

p_new_global_name

varchar2

required

数据库的新全局名称。

数据库必须处于打开状态,才能更改名称。有关更改数据库的全局名称的更多信息,请参阅 Oracle 文档中的 ALTER DATABASE

以下示例将数据库的全局名称更改为 new_global_name

exec rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => 'new_global_name');

创建表空间并配置其大小

Amazon RDS 仅支持数据文件、日志文件和控制文件的 Oracle Managed Files (OMF)。创建数据文件和日志文件时,无法指定物理文件名。

默认情况下,在启用自动扩展的情况下创建表空间,并且没有最大大小。由于这些默认设置,表空间会增大以占用所有分配的存储空间。建议您在永久表空间和临时表空间上指定适当的最大大小,并仔细监视空间使用率。

以下示例创建一个名为 users2 的表空间,其起始大小为 1 GB,最大大小为 10 GB:

create tablespace users2 datafile size 1G autoextend on maxsize 10G;

以下示例创建了名为 temp01 的临时表空间:

create temporary tablespace temp01;

Oracle ALTER DATABASE 系统特权不适用于 Amazon RDS。建议您不要使用小文件表空间,因为您只能使用 ALTER DATABASE 语句执行某些操作,例如调整现有数据文件的大小。

您可以使用 ALTER TABLESPACE 调整大文件表空间的大小。可以 KB (K)、MB (M)、GB (G) 或 TB (T) 为单位指定大小。

以下示例将名为 users2 的大文件表空间的大小调整到 200 MB:

alter tablespace users2 resize 200M;

以下示例向名为 users2 的小文件表空间添加其他数据文件:

alter tablespace users2 add datafile size 100000M autoextend on next 250m maxsize UNLIMITED;

设置默认表空间

您可以使用以下 Amazon RDS 过程 rdsadmin.rdsadmin_util.alter_default_tablespace 设置默认表空间。alter_default_tablespace 过程具有以下参数。

参数名称 数据类型 默认值 必需 描述

tablespace_name

varchar

必需

默认表空间的名称。

以下示例将默认表空间设置为 users2

exec rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');

设置默认临时表空间

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.alter_default_temp_tablespace 设置默认临时表空间。alter_default_temp_tablespace 过程具有以下参数。

参数名称 数据类型 默认值 必需 描述

tablespace_name

varchar

必需

默认临时表空间的名称。

以下示例将默认临时表空间设置为 temp01

exec rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');

通过检查点检验数据库

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.checkpoint 为数据库创建检查点。checkpoint 过程没有参数。

以下示例为数据库创建检查点:

exec rdsadmin.rdsadmin_util.checkpoint;

设置分布式恢复

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.enable_distr_recoverydisable_distr_recovery 设置分布式恢复。这些过程没有参数。

以下示例启用分布式恢复:

exec rdsadmin.rdsadmin_util.enable_distr_recovery;

以下示例禁用分布式恢复:

exec rdsadmin.rdsadmin_util.disable_distr_recovery;

设置数据库时区

可通过两种不同的方法设置 Amazon RDS Oracle 数据库的时区:

  • 您可以使用 Timezone 选项。

    Timezone 选项在主机级别更改时区,并且会影响所有日期列和值 (例如 SYSDATE)。有关 Timezone 选项的更多信息,请参阅 Oracle 时区

  • 您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.alter_db_time_zone

    alter_db_time_zone 步骤仅更改某些数据类型的时区,而不更改 SYSDATE。在 Oracle 文档中列出了与设置时区有关的其他限制。

alter_db_time_zone 过程具有以下参数。

参数名称 数据类型 默认值 必需 描述

p_new_tz

varchar2

required

作为已命名的区域或与协调世界时 (UTC) 的绝对偏移量的时区。有效偏移范围介于 -12:00 到 +14:00 之间。

以下示例将时区更改为 UTC 加 3 小时:

exec rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '+3:00');

以下示例将时区更改为非洲/阿尔及尔区域的时区:

exec rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => 'Africa/Algiers');

使用 alter_db_time_zone 过程更改时区后,必须重启数据库实例,更改才能生效。有关更多信息,请参阅重启中的数据库实例

使用 Oracle 外部表

Oracle 外部表是具有不在数据库中数据的表。这些数据位于数据库可以访问的外部文件中。使用外部表,您可以访问数据而无需将其加载到数据库中。有关外部表的更多信息,请参阅 Oracle 文档中的管理外部表

使用 Amazon RDS,您可以将外部表文件存储在目录对象中。您可以创建目录对象,或者使用 Oracle 数据库中预定义的目录对象,例如 DATA_PUMP_DIR 目录。有关创建目录对象的信息,请参阅在主数据存储空间中创建新目录。您可以查询 ALL_DIRECTORIES 视图来列出您的 Amazon RDS Oracle 数据库实例的目录对象。

注意

目录对象指向由实例使用的主数据存储空间 (Amazon EBS 卷)。—包括数据文件、重做日志、审核、跟踪和其他文件在内—所用的空间均计入分配的存储中。

您可以使用 DBMS_FILE_TRANSFER 包或 UTL_FILE 包,将外部数据文件从一个 Oracle 数据库移动到另一个。外部数据文件从源数据库上的目录移至目标数据库上的指定目录中。有关使用 DBMS_FILE_TRANSFER 的信息,请参阅 Oracle Data Pump

移动外部数据文件之后,您可以用它来创建外部表。以下示例创建使用 USER_DIR1 目录中 emp_xt_file1.txt 文件的外部表:

CREATE TABLE emp_xt ( emp_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), user_name VARCHAR2(20) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY USER_DIR1 ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (emp_id,first_name,last_name,user_name) ) LOCATION ('emp_xt_file1.txt') ) PARALLEL REJECT LIMIT UNLIMITED;

假设您要将位于 Amazon RDS Oracle 数据库实例中的数据移动到外部数据文件中。在这种情况下,您可以通过创建外部表并从数据库中的表选择数据来填充外部数据文件。例如,以下 SQL 语句通过查询数据库中的 orders_xt 表创建 orders 外部表。

CREATE TABLE orders_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION ('orders_xt.dmp') ) AS SELECT * FROM orders;

在此示例中,数据填充到 DATA_PUMP_DIR 目录的 orders_xt.dmp 文件中。

使用 Automatic Workload Repository (AWR)

如果您使用 Oracle Database Enterprise Edition 并且需要使用 Automatic Workload Repository (AWR),则可以通过更改 CONTROL_MANAGEMENT_PACK_ACCESS 参数启用 AWR。

Oracle AWR 包含几个在主机服务器上安装的报告生成脚本,如 awrrpt.sql。虽然您无法直接访问主机,但您可以复制来自其他 Oracle 数据库安装的脚本。

要在同一 VPC 或对等 VPC 中使用与 Amazon RDS 数据库实例的 Oracle 数据库链接,这两个数据库实例之间应具有有效路由。使用 VPC 路由表和网络访问控制列表 (ACL) 验证数据库实例之间的有效路由。

每个数据库实例的安全组必须允许另一个数据库实例的传入和传出。入站和出站规则可引用同一 VPC 或对等 VPC 中的安全组。有关更多信息,请参阅更新安全组以引用对等的 VPC 安全组

如果您已使用 VPC 中的 DHCP 选项集配置自定义 DNS 服务器,则自定义 DNS 服务器必须能够解析数据库链接目标的名称。有关更多信息,请参阅 设置自定义 DNS 服务器

有关将数据库链接用于 Oracle Data Pump 的更多信息,请参阅 Oracle Data Pump.

设置数据库实例的默认版本

您可以在私有环境中重新定义称为版本的数据库对象。您可以使用基于版本的重新定义,以最少的停机来升级应用程序的数据库对象。

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.alter_default_edition 设置 Amazon RDS Oracle 数据库实例的默认版本。

以下示例将 Amazon RDS Oracle 数据库实例的默认版本设置为 RELEASE_V1

exec rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');

以下示例将 Amazon RDS Oracle 数据库实例的默认版本设置回 Oracle 默认值。

exec rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');

有关基于 Oracle 版本的重新定义的更多信息,请参阅 Oracle 文档中的关于版本和基于版本的重新定义

验证数据库实例文件

您可以使用 Amazon RDS 包 rdsadmin.rdsadmin_rman_util 验证 Amazon RDS Oracle 数据库实例文件,例如数据文件、服务器参数文件 (SPFILE) 和控制文件。

注意

rdsadmin.rdsadmin_rman_util 包提供可用于 Oracle Recovery Manager (RMAN) 验证的功能。在 Amazon RDS 不将 RMAN 用于备份时,您可以使用该包对数据库、控制文件、SPFILE、表空间或数据文件执行 RMAN 验证命令。有关 RMAN 验证的更多信息,请参阅验证数据库文件和备份以及 Oracle 文档中的 VALIDATE

验证数据库实例

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_rman_util.validate_database 验证由 Amazon RDS Oracle 数据库实例使用的所有相关文件。

参数名称 数据类型 有效值 默认 必需 描述

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

可选

检测损坏的程度。

指定 'PHYSICAL' 检查物理损坏。物理损坏的例子包括数据块在标头和脚注中不匹配。

指定 'PHYSICAL+LOGICAL' 在物理损坏之外,还检查逻辑不一致的情况。逻辑损坏的例子包括数据块损坏。

p_parallel

number

对于 Oracle Database Enterprise Edition (EE),为介于 1254 之间的有效整数。

对于其他 Oracle Database 版本为 1

1

可选

通道数。

p_section_size_mb

number

有效的整数

NULL

可选

扇区大小,以兆字节 (MB) 为单位。

通过将每个文件拆分为指定扇区大小来并行验证。

NULL 时将忽略参数。

p_rman_to_dbms_output

布尔值

TRUEFALSE

FALSE

可选

TRUE 时,在 DBMS_OUTPUT 目录中的文件之外,RMAN 输出还发送到 BDUMP 包。当使用 SQL*Plus 时,执行 SET SERVEROUTPUT ON 查看输出。

FALSE 时,RMAN 输出只发送到 BDUMP 目录中的文件。

以下示例使用参数的默认值来验证数据库实例:

exec rdsadmin.rdsadmin_rman_util.validate_database;

以下示例使用参数的指定值来验证数据库实例:

BEGIN rdsadmin.rdsadmin_rman_util.validate_database( p_validation_type => 'PHYSICAL+LOGICAL', p_parallel => 4, p_section_size_mb => 10, p_rman_to_dbms_output => FALSE); END; /

p_rman_to_dbms_output 参数设置为 FALSE 时,RMAN 输出写入到 BDUMP 目录中的文件。

要查看 BDUMP 目录中的文件,请运行以下 SELECT 语句:

SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;

要查看 BDUMP 目录中文件的内容,请运行以下 SELECT 语句:

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','rds-rman-validate-nnn.txt'));

将文件名替换为您要查看的文件的名称。

验证表空间

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_rman_util.validate_tablespace 验证与表空间关联的文件。

参数名称 数据类型 有效值 默认 必需 描述

p_tablespace_name

varchar2

有效的空间表名称

必需

表空间的名称。

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

可选

检测损坏的程度。

指定 'PHYSICAL' 检查物理损坏。物理损坏的例子包括数据块在标头和脚注中不匹配。

指定 'PHYSICAL+LOGICAL' 在物理损坏之外,还检查逻辑不一致的情况。逻辑损坏的例子包括数据块损坏。

p_parallel

number

对于 Oracle Database Enterprise Edition (EE),为介于 1254 之间的有效整数。

对于其他 Oracle Database 版本为 1

1

可选

通道数。

p_section_size_mb

number

有效的整数

NULL

可选

扇区大小,以兆字节 (MB) 为单位。

通过将每个文件拆分为指定扇区大小来并行验证。

NULL 时将忽略参数。

p_rman_to_dbms_output

布尔值

TRUEFALSE

FALSE

可选

TRUE 时,在 DBMS_OUTPUT 目录中的文件之外,RMAN 输出还发送到 BDUMP 包。当使用 SQL*Plus 时,执行 SET SERVEROUTPUT ON 查看输出。

FALSE 时,RMAN 输出只发送到 BDUMP 目录中的文件。

验证控制文件

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_rman_util.validate_current_controlfile 仅验证由 Amazon RDS Oracle 数据库实例使用的控制文件。

参数名称 数据类型 有效值 默认 必需 描述

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

可选

检测损坏的程度。

指定 'PHYSICAL' 检查物理损坏。物理损坏的例子包括数据块在标头和脚注中不匹配。

指定 'PHYSICAL+LOGICAL' 在物理损坏之外,还检查逻辑不一致的情况。逻辑损坏的例子包括数据块损坏。

p_rman_to_dbms_output

布尔值

TRUEFALSE

FALSE

可选

TRUE 时,在 DBMS_OUTPUT 目录中的文件之外,RMAN 输出还发送到 BDUMP 包。当使用 SQL*Plus 时,执行 SET SERVEROUTPUT ON 查看输出。

FALSE 时,RMAN 输出只发送到 BDUMP 目录中的文件。

验证 SPFILE

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_rman_util.validate_spfile 仅验证由 Amazon RDS Oracle 数据库实例使用的服务器参数文件 (SPFILE)。

参数名称 数据类型 有效值 默认 必需 描述

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

可选

检测损坏的程度。

指定 'PHYSICAL' 检查物理损坏。物理损坏的例子包括数据块在标头和脚注中不匹配。

指定 'PHYSICAL+LOGICAL' 在物理损坏之外,还检查逻辑不一致的情况。逻辑损坏的例子包括数据块损坏。

p_rman_to_dbms_output

布尔值

TRUEFALSE

FALSE

可选

TRUE 时,在 DBMS_OUTPUT 目录中的文件之外,RMAN 输出还发送到 BDUMP 包。当使用 SQL*Plus 时,执行 SET SERVEROUTPUT ON 查看输出。

FALSE 时,RMAN 输出只发送到 BDUMP 目录中的文件。

验证数据文件

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_rman_util.validate_datafile 验证数据文件。

参数名称 数据类型 有效值 默认 必需 描述

p_datafile

varchar2

有效的空间表名称

必需

数据文件的名称。

p_from_block

number

有效的整数

NULL

可选

在数据文件中开始验证的块的编号。为 NULL 时,使用 1

p_to_block

number

有效的整数

NULL

可选

在数据文件中结束验证的块的编号。为 NULL 时,使用数据文件中的最大块。

p_validation_type

varchar2

'PHYSICAL''PHYSICAL+LOGICAL'

'PHYSICAL'

可选

检测损坏的程度。

指定 'PHYSICAL' 检查物理损坏。物理损坏的例子包括数据块在标头和脚注中不匹配。

指定 'PHYSICAL+LOGICAL' 在物理损坏之外,还检查逻辑不一致的情况。逻辑损坏的例子包括数据块损坏。

p_parallel

number

对于 Oracle Database Enterprise Edition (EE),为介于 1254 之间的有效整数。

对于其他 Oracle Database 版本为 1

1

可选

通道数。

p_section_size_mb

number

有效的整数

NULL

可选

扇区大小,以兆字节 (MB) 为单位。

通过将每个文件拆分为指定扇区大小来并行验证。

NULL 时将忽略参数。

p_rman_to_dbms_output

布尔值

TRUEFALSE

FALSE

可选

TRUE 时,在 DBMS_OUTPUT 目录中的文件之外,RMAN 输出还发送到 BDUMP 包。当使用 SQL*Plus 时,执行 SET SERVEROUTPUT ON 查看输出。

FALSE 时,RMAN 输出只发送到 BDUMP 目录中的文件。

相关主题