- 浏览: 788772 次
- 性别:
- 来自: 广州
文章分类
最新评论
空间RESUMABLE操作 转
Oracle从9i开始引入这个功能,当出现空间不足等相关的错误时,Oracle可以不是马上返回错误信息,并回滚当前的操作,而是将操作挂起,直到挂起时间超过RESUMABLE TIMEOUT,或者空间不足的错误被解决。
这一篇简单介绍空间RESUMABLE的例子。
第一次碰到这个特性是在一次安装9i数据库的过程中,在利用DBCA工具建立数据库的时候,由于一个辅助表空间设置的数据文件比较小,导致表空间不足的问题产生,由于DBCA启用了这个特性,使得DBCA的建库进程在一个地方停留了很久(大概半个小时以上),这时才意识到安装过程碰到了以前没有遇到的问题。
由于此时数据库的数据字典已经完全生成,因此通过sqlplus登陆到数据库,进行系统状态,以及安装进程的等待信息,才发现数据库建库操作进入SUSPEND状态,找到问题后,将目标表空间的数据文件加大,于是DBCA得以进行运行,并最终完成了建库操作。
由于9i启用了这个特性,使得当时的建库操作没有因为空间不足而中途中止,因此当时对这个特性印象比较深。使用这个特性,可以使得一个长时间运行的数据库操作,不至于因为空间相关的错误而回滚,给了用户解决问题,并继续处理的能力。
在9i中,RESUMABLE只能在会话级设置,而在10g中,Oracle新增了RESUMABLE_TIMEOUT初始化参数,使得RESUMABLE特性可以在数据库的实例级上进行设置。
SQL> SELECT * FROM V$VERSION;
BANNER
------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for 32-bit Windows: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
SQL> CREATE USER U_RESUMABLE IDENTIFIED BY U_RESUMABLE;
用户已创建。
SQL> GRANT CONNECT TO U_RESUMABLE;
授权成功。
SQL> ALTER USER U_RESUMABLE QUOTA 1M ON USERS;
用户已更改。
SQL> CONN U_RESUMABLE/U_RESUMABLE@YTK92已连接。
SQL> SET TIMING ON
SQL> CREATE TABLE T (ID NUMBER)
2 STORAGE (INITIAL 1M)
3 TABLESPACE USERS;
表已创建。
已用时间: 00: 00: 00.12
SQL> DROP TABLE T;
表已删除。
已用时间: 00: 00: 01.12
SQL> CREATE TABLE T (ID NUMBER)
2 STORAGE (INITIAL 2M)
3 TABLESPACE USERS;
CREATE TABLE T (ID NUMBER)
*第 1 行出现错误:
ORA-01536: 超出表空间'USERS'的空间限量
已用时间: 00: 00: 00.10
正常情况下,如果用户创建对象超过用户的QUOTA,则马上会返回错误信息,如果使用了RESUMABLE:
SQL> CONN YANGTK/YANGTK@YTK92已连接。
SQL> GRANT ALTER SESSION TO U_RESUMABLE;
授权成功。
已用时间: 00: 00: 00.01
SQL> GRANT RESUMABLE TO U_RESUMABLE;
授权成功。
已用时间: 00: 00: 00.03
SQL> CONN U_RESUMABLE/U_RESUMABLE@YTK92已连接。
SQL> ALTER SESSION ENABLE RESUMABLE TIMEOUT 60;
会话已更改。
已用时间: 00: 00: 00.01
SQL> CREATE TABLE T (ID NUMBER)
2 STORAGE (INITIAL 2M)
3 TABLESPACE USERS;
CREATE TABLE T (ID NUMBER)
*第 1 行出现错误:
ORA-30032: 挂起的 (可恢复) 语句已超时
ORA-01536: 超出表空间'USERS'的空间限量
已用时间: 00: 01: 01.81
可以看到,由于设置了会话的挂起超时为60秒,刚才运行0.1秒就会报错的建表语句,这次挂起了1分钟后在报错。
再次执行这个操作:
SQL> CREATE TABLE T (ID NUMBER)
2 STORAGE (INITIAL 2M)
3 TABLESPACE USERS;
会话被挂起,并在1分钟内在另外的会话中,加大当前用户的QUOTA:
SQL> CONN YANGTK/YANGTK@YTK92已连接。
SQL> ALTER USER U_RESUMABLE QUOTA 5M ON USERS;
用户已更改。
这时挂起的会话会自动继续运行:
表已创建。
已用时间: 00: 00: 26.81
SQL>
合理的利用这个特性,可以避免很多由于空间不足引发的重复性工作。
这一篇简单介绍空间RESUMABLE的相关视图和包。
空间RESUMABLE操作(一):http://yangtingkun.itpub.net/post/468/485892
前面简单介绍了空间RESUMABLE操作的使用,说明了一个会话如何才能ENABLE RESUMABLE语句,并设置TIMEOUT时间。
那么随后问题就是,当数据库中发生了空间RESUMABLE操作,一些语句处于SUSPEND状态,由于没有错误信息的返回,如何判断这些语句是由于空间不足被挂起,还是处于其他的原因而处于等待状态。
Oracle提供了USER_RESUMABLE和DBA_RESUMABLE视图,通过常用的V$SESSION_WAIT视图同样可以查询到SUSPEND状态。
SQL> SELECT SUM(BYTES)/1024/1024
2 FROM DBA_FREE_SPACE
3 WHERE TABLESPACE_NAME = 'TEST';
SUM(BYTES)/1024/1024
--------------------
199.9375
SQL> CREATE TABLE T (ID NUMBER)
2 TABLESPACE TEST
3 STORAGE (INITIAL 300M);
CREATE TABLE T (ID NUMBER)
*
ERROR at line 1:
ORA-01659: unable to allocate MINEXTENTS beyond 24 in tablespace TEST
下面设置会话的RESUMABLE并设置TIMEOUT为300秒:
SQL> ALTER SESSION ENABLE RESUMABLE TIMEOUT 300;
Session altered.
在另外的会话中查询:
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
Session altered.
SQL> SELECT SESSION_ID, STATUS, TIMEOUT, SUSPEND_TIME, RESUME_TIME, ERROR_NUMBER
2 FROM DBA_RESUMABLE;
SESSION_ID STATUS TIMEOUT SUSPEND_TIME RESUME_TIME ERROR_NUMBER
---------- --------- ---------- -------------------- -------------------- ------------
120 NORMAL 300 0
由于会话设置了ENABLE RESUMABLE,因此在DBA_RESUMABLE视图中,已经可以看到这个会话信息了,不过目前会话处于正常状态。
下面执行刚才报错的SQL语句:
SQL> CREATE TABLE T (ID NUMBER)
2 TABLESPACE TEST
3 STORAGE (INITIAL 300M);
会话进入到挂起状态,在另外的会话检查DBA_RESUMABLE视图:
SQL> SELECT SESSION_ID, STATUS, TIMEOUT, SUSPEND_TIME, RESUME_TIME, ERROR_NUMBER
2 FROM DBA_RESUMABLE;
SESSION_ID STATUS TIMEOUT SUSPEND_TIME RESUME_TIME ERROR_NUMBER
---------- --------- ---------- -------------------- -------------------- ------------
120 SUSPENDED 300 06/16/09 17:12:53 1659
SQL> SELECT SID, EVENT
2 FROM V$SESSION_WAIT
3 WHERE SID = 120;
SID EVENT
---------- --------------------------------------------------
120 statement suspended, wait error to be cleared
当语句由于空间问题被挂起后,从DBA_RESUMABLE视图中可以看到会话的状态变为RESUPENDED,而且还有会话发生挂起的时间。
从V$SESSION_WAIT视图或者10g以后的V$SESSION视图的EVENT列,也可以看到会话处于SUSPEND状态。
除了解决空间问题使得这个会话恢复正常外,还可以通过DBMS_RESUMABLE包对这个会话进行维护操作,比如使用ABORT中止会话的挂起:
SQL> EXEC DBMS_RESUMABLE.ABORT(120)
PL/SQL procedure successfully completed.
SQL> SELECT SESSION_ID, STATUS, TIMEOUT, SUSPEND_TIME, RESUME_TIME, ERROR_NUMBER
2 FROM DBA_RESUMABLE;
SESSION_ID STATUS TIMEOUT SUSPEND_TIME RESUME_TIME ERROR_NUMBER
---------- --------- ---------- -------------------- -------------------- ------------
120 ABORTED 300 1659
中止会话挂起后,可以从DBA_RESUMABLE看到会话处于ABORTED状态,导致会话发生挂起的错误信息仍然保留。
而刚才被挂起的会话并不是报错ORA-1659错误,而是操作被中止的错误:
CREATE TABLE T (ID NUMBER)
*
ERROR at line 1:
ORA-01013: user requested cancel of current operation
SQL>
DBMS_RESUMABLE包除了ABORT过程外,还包括SET_TIMEOUT和GET_TIMEOUT等过程:
SQL> SELECT DBMS_RESUMABLE.GET_TIMEOUT FROM DUAL;
GET_TIMEOUT
-----------
-1
SQL> SELECT DBMS_RESUMABLE.GET_SESSION_TIMEOUT(120) FROM DUAL;
DBMS_RESUMABLE.GET_SESSION_TIMEOUT(120)
---------------------------------------
300
当前会话没有设置ENABLE RESUMABLE,因此得到的结果是-1,如果要查询非当前会话的TIMEOUT值,使用GET_SESSION_TIMEOUT函数。
SQL> EXEC DBMS_RESUMABLE.SET_SESSION_TIMEOUT(120, 3600)
PL/SQL procedure successfully completed.
SQL> SELECT DBMS_RESUMABLE.GET_SESSION_TIMEOUT(120) FROM DUAL;
DBMS_RESUMABLE.GET_SESSION_TIMEOUT(120)
---------------------------------------
3600
SQL> SELECT SESSION_ID, STATUS, TIMEOUT, SUSPEND_TIME, RESUME_TIME, ERROR_NUMBER
2 FROM DBA_RESUMABLE;
SESSION_ID STATUS TIMEOUT SUSPEND_TIME RESUME_TIME ERROR_NUMBER
---------- --------- ---------- -------------------- -------------------- ------------
120 NORMAL 3600 0
可以看到,设置会话120的TIMEOUT为3600之后,同时会清除会话的状态信息,以及ERROR_NUMBER等信息。
除了在数据库中的视图中可以查询到错误信息,DBMS_RESUMABLE包的SPACE_ERROR_INFO函数,也可以看到错误信息,这个函数会在下一篇文章,配合AFTER SUSPEND触发器一起介绍。
最后,在数据库外的alert文件中,一样可以看到错误信息:
Tue Jun 16 17:01:48 2009
ORA-1652: unable to extend temp segment by 512 in tablespace TEST
Tue Jun 16 17:12:53 2009
statement in resumable session 'User TEST(74), Session 120, Instance 1' was suspended due to
ORA-01659: unable to allocate MINEXTENTS beyond 24 in tablespace TEST
Tue Jun 16 17:14:34 2009
statement in resumable session 'User TEST(74), Session 120, Instance 1' was aborted
Oracle从9i开始引入这个功能,当出现空间不足等相关的错误时,Oracle可以不是马上返回错误信息,并回滚当前的操作,而是将操作挂起,直到挂起时间超过RESUMABLE TIMEOUT,或者空间不足的错误被解决。
这一篇简单介绍空间RESUMABLE的例子。
第一次碰到这个特性是在一次安装9i数据库的过程中,在利用DBCA工具建立数据库的时候,由于一个辅助表空间设置的数据文件比较小,导致表空间不足的问题产生,由于DBCA启用了这个特性,使得DBCA的建库进程在一个地方停留了很久(大概半个小时以上),这时才意识到安装过程碰到了以前没有遇到的问题。
由于此时数据库的数据字典已经完全生成,因此通过sqlplus登陆到数据库,进行系统状态,以及安装进程的等待信息,才发现数据库建库操作进入SUSPEND状态,找到问题后,将目标表空间的数据文件加大,于是DBCA得以进行运行,并最终完成了建库操作。
由于9i启用了这个特性,使得当时的建库操作没有因为空间不足而中途中止,因此当时对这个特性印象比较深。使用这个特性,可以使得一个长时间运行的数据库操作,不至于因为空间相关的错误而回滚,给了用户解决问题,并继续处理的能力。
在9i中,RESUMABLE只能在会话级设置,而在10g中,Oracle新增了RESUMABLE_TIMEOUT初始化参数,使得RESUMABLE特性可以在数据库的实例级上进行设置。
SQL> SELECT * FROM V$VERSION;
BANNER
------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for 32-bit Windows: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
SQL> CREATE USER U_RESUMABLE IDENTIFIED BY U_RESUMABLE;
用户已创建。
SQL> GRANT CONNECT TO U_RESUMABLE;
授权成功。
SQL> ALTER USER U_RESUMABLE QUOTA 1M ON USERS;
用户已更改。
SQL> CONN U_RESUMABLE/U_RESUMABLE@YTK92已连接。
SQL> SET TIMING ON
SQL> CREATE TABLE T (ID NUMBER)
2 STORAGE (INITIAL 1M)
3 TABLESPACE USERS;
表已创建。
已用时间: 00: 00: 00.12
SQL> DROP TABLE T;
表已删除。
已用时间: 00: 00: 01.12
SQL> CREATE TABLE T (ID NUMBER)
2 STORAGE (INITIAL 2M)
3 TABLESPACE USERS;
CREATE TABLE T (ID NUMBER)
*第 1 行出现错误:
ORA-01536: 超出表空间'USERS'的空间限量
已用时间: 00: 00: 00.10
正常情况下,如果用户创建对象超过用户的QUOTA,则马上会返回错误信息,如果使用了RESUMABLE:
SQL> CONN YANGTK/YANGTK@YTK92已连接。
SQL> GRANT ALTER SESSION TO U_RESUMABLE;
授权成功。
已用时间: 00: 00: 00.01
SQL> GRANT RESUMABLE TO U_RESUMABLE;
授权成功。
已用时间: 00: 00: 00.03
SQL> CONN U_RESUMABLE/U_RESUMABLE@YTK92已连接。
SQL> ALTER SESSION ENABLE RESUMABLE TIMEOUT 60;
会话已更改。
已用时间: 00: 00: 00.01
SQL> CREATE TABLE T (ID NUMBER)
2 STORAGE (INITIAL 2M)
3 TABLESPACE USERS;
CREATE TABLE T (ID NUMBER)
*第 1 行出现错误:
ORA-30032: 挂起的 (可恢复) 语句已超时
ORA-01536: 超出表空间'USERS'的空间限量
已用时间: 00: 01: 01.81
可以看到,由于设置了会话的挂起超时为60秒,刚才运行0.1秒就会报错的建表语句,这次挂起了1分钟后在报错。
再次执行这个操作:
SQL> CREATE TABLE T (ID NUMBER)
2 STORAGE (INITIAL 2M)
3 TABLESPACE USERS;
会话被挂起,并在1分钟内在另外的会话中,加大当前用户的QUOTA:
SQL> CONN YANGTK/YANGTK@YTK92已连接。
SQL> ALTER USER U_RESUMABLE QUOTA 5M ON USERS;
用户已更改。
这时挂起的会话会自动继续运行:
表已创建。
已用时间: 00: 00: 26.81
SQL>
合理的利用这个特性,可以避免很多由于空间不足引发的重复性工作。
这一篇简单介绍空间RESUMABLE的相关视图和包。
空间RESUMABLE操作(一):http://yangtingkun.itpub.net/post/468/485892
前面简单介绍了空间RESUMABLE操作的使用,说明了一个会话如何才能ENABLE RESUMABLE语句,并设置TIMEOUT时间。
那么随后问题就是,当数据库中发生了空间RESUMABLE操作,一些语句处于SUSPEND状态,由于没有错误信息的返回,如何判断这些语句是由于空间不足被挂起,还是处于其他的原因而处于等待状态。
Oracle提供了USER_RESUMABLE和DBA_RESUMABLE视图,通过常用的V$SESSION_WAIT视图同样可以查询到SUSPEND状态。
SQL> SELECT SUM(BYTES)/1024/1024
2 FROM DBA_FREE_SPACE
3 WHERE TABLESPACE_NAME = 'TEST';
SUM(BYTES)/1024/1024
--------------------
199.9375
SQL> CREATE TABLE T (ID NUMBER)
2 TABLESPACE TEST
3 STORAGE (INITIAL 300M);
CREATE TABLE T (ID NUMBER)
*
ERROR at line 1:
ORA-01659: unable to allocate MINEXTENTS beyond 24 in tablespace TEST
下面设置会话的RESUMABLE并设置TIMEOUT为300秒:
SQL> ALTER SESSION ENABLE RESUMABLE TIMEOUT 300;
Session altered.
在另外的会话中查询:
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
Session altered.
SQL> SELECT SESSION_ID, STATUS, TIMEOUT, SUSPEND_TIME, RESUME_TIME, ERROR_NUMBER
2 FROM DBA_RESUMABLE;
SESSION_ID STATUS TIMEOUT SUSPEND_TIME RESUME_TIME ERROR_NUMBER
---------- --------- ---------- -------------------- -------------------- ------------
120 NORMAL 300 0
由于会话设置了ENABLE RESUMABLE,因此在DBA_RESUMABLE视图中,已经可以看到这个会话信息了,不过目前会话处于正常状态。
下面执行刚才报错的SQL语句:
SQL> CREATE TABLE T (ID NUMBER)
2 TABLESPACE TEST
3 STORAGE (INITIAL 300M);
会话进入到挂起状态,在另外的会话检查DBA_RESUMABLE视图:
SQL> SELECT SESSION_ID, STATUS, TIMEOUT, SUSPEND_TIME, RESUME_TIME, ERROR_NUMBER
2 FROM DBA_RESUMABLE;
SESSION_ID STATUS TIMEOUT SUSPEND_TIME RESUME_TIME ERROR_NUMBER
---------- --------- ---------- -------------------- -------------------- ------------
120 SUSPENDED 300 06/16/09 17:12:53 1659
SQL> SELECT SID, EVENT
2 FROM V$SESSION_WAIT
3 WHERE SID = 120;
SID EVENT
---------- --------------------------------------------------
120 statement suspended, wait error to be cleared
当语句由于空间问题被挂起后,从DBA_RESUMABLE视图中可以看到会话的状态变为RESUPENDED,而且还有会话发生挂起的时间。
从V$SESSION_WAIT视图或者10g以后的V$SESSION视图的EVENT列,也可以看到会话处于SUSPEND状态。
除了解决空间问题使得这个会话恢复正常外,还可以通过DBMS_RESUMABLE包对这个会话进行维护操作,比如使用ABORT中止会话的挂起:
SQL> EXEC DBMS_RESUMABLE.ABORT(120)
PL/SQL procedure successfully completed.
SQL> SELECT SESSION_ID, STATUS, TIMEOUT, SUSPEND_TIME, RESUME_TIME, ERROR_NUMBER
2 FROM DBA_RESUMABLE;
SESSION_ID STATUS TIMEOUT SUSPEND_TIME RESUME_TIME ERROR_NUMBER
---------- --------- ---------- -------------------- -------------------- ------------
120 ABORTED 300 1659
中止会话挂起后,可以从DBA_RESUMABLE看到会话处于ABORTED状态,导致会话发生挂起的错误信息仍然保留。
而刚才被挂起的会话并不是报错ORA-1659错误,而是操作被中止的错误:
CREATE TABLE T (ID NUMBER)
*
ERROR at line 1:
ORA-01013: user requested cancel of current operation
SQL>
DBMS_RESUMABLE包除了ABORT过程外,还包括SET_TIMEOUT和GET_TIMEOUT等过程:
SQL> SELECT DBMS_RESUMABLE.GET_TIMEOUT FROM DUAL;
GET_TIMEOUT
-----------
-1
SQL> SELECT DBMS_RESUMABLE.GET_SESSION_TIMEOUT(120) FROM DUAL;
DBMS_RESUMABLE.GET_SESSION_TIMEOUT(120)
---------------------------------------
300
当前会话没有设置ENABLE RESUMABLE,因此得到的结果是-1,如果要查询非当前会话的TIMEOUT值,使用GET_SESSION_TIMEOUT函数。
SQL> EXEC DBMS_RESUMABLE.SET_SESSION_TIMEOUT(120, 3600)
PL/SQL procedure successfully completed.
SQL> SELECT DBMS_RESUMABLE.GET_SESSION_TIMEOUT(120) FROM DUAL;
DBMS_RESUMABLE.GET_SESSION_TIMEOUT(120)
---------------------------------------
3600
SQL> SELECT SESSION_ID, STATUS, TIMEOUT, SUSPEND_TIME, RESUME_TIME, ERROR_NUMBER
2 FROM DBA_RESUMABLE;
SESSION_ID STATUS TIMEOUT SUSPEND_TIME RESUME_TIME ERROR_NUMBER
---------- --------- ---------- -------------------- -------------------- ------------
120 NORMAL 3600 0
可以看到,设置会话120的TIMEOUT为3600之后,同时会清除会话的状态信息,以及ERROR_NUMBER等信息。
除了在数据库中的视图中可以查询到错误信息,DBMS_RESUMABLE包的SPACE_ERROR_INFO函数,也可以看到错误信息,这个函数会在下一篇文章,配合AFTER SUSPEND触发器一起介绍。
最后,在数据库外的alert文件中,一样可以看到错误信息:
Tue Jun 16 17:01:48 2009
ORA-1652: unable to extend temp segment by 512 in tablespace TEST
Tue Jun 16 17:12:53 2009
statement in resumable session 'User TEST(74), Session 120, Instance 1' was suspended due to
ORA-01659: unable to allocate MINEXTENTS beyond 24 in tablespace TEST
Tue Jun 16 17:14:34 2009
statement in resumable session 'User TEST(74), Session 120, Instance 1' was aborted
发表评论
-
Oracle 10g 的clusterware 32位 下载地址
2013-04-19 23:03 1240Oracle 10g 的clusterware 32位 下载地 ... -
oracle 分析函数 RANK()
2013-04-11 00:05 1108RANK()既是一个聚合函数,也是一个分析函数 其具体的语法 ... -
oracle 分析函数
2013-04-09 23:25 1185分析函数是用于计算一组中多行的聚合值,与聚合函数的区别在于聚合 ... -
批量执行 bulk collect与forall用法
2013-04-08 23:49 1400BULK COLLECT 子句会批量检 ... -
pl/sql集合类型
2013-03-26 10:12 1578--集合类型 /* 单行单列的数据,使用标量变量 单行 ... -
oracle 行链接与行迁移
2013-03-16 01:06 1113表里的一行对于一个数据块太大的情况有二种(一行在一个数据块里放 ... -
oracle Health Monitor
2013-01-20 00:02 1621About Health Monitor Beginning ... -
oracle moving window size与 AWR retention period关系
2013-01-19 15:58 8496转自: http://tomszrp.itpub.net/po ... -
Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
2013-01-12 00:20 2933insert提示IGNORE_ROW_ON_DUPKEY_IN ... -
oracle 11g新特性Flashback data archive
2013-01-09 22:52 30901. 什么是flashback data archive F ... -
RMAN List和report 命令
2012-12-25 00:07 2915LIST 命令 使用RMAN LIST 命令显示有关资料档案库 ... -
oracle ASM中ASM_POWER_LIMIT参数
2012-12-24 23:46 6445ASM_POWER_LIMIT 该初始化参数用于指定ASM例程 ... -
oracle I/O 从属进程
2012-12-24 23:24 1440I/O 从属进程 I/O从 ... -
easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
2012-12-19 23:43 5647用easy connect连接出现“tns无法解析指定的连接标 ... -
Flashback Database --闪回数据库
2012-12-19 23:38 1398Flashback 技术是以Undo segment中的内容为 ... -
Oracle 11g新特性:Automatic Diagnostic Repository
2012-12-19 22:35 1400Oracle Database 11g的FDI(Fault D ... -
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
2012-12-19 22:09 2729RMAN配置中通道(CHANNEL)相 ... -
oracle 创建视图 with check option
2012-12-13 23:14 1540我们来看下面的例子: create or replace vi ... -
flashback transaction闪回事务查询
2012-11-26 22:00 1509闪回事务查询有别于闪回查询的特点有以下3个: (1) ... -
pl/sql连不上oracle数据库
2012-11-21 22:56 3754pl/sql 9.2版本连不上oracle数据库 当系统安装 ...
相关推荐
Oracle 全库迁移使用 IMP/EXP 命令 在 Oracle 数据库中,进行全库迁移是一项复杂的任务,需要使用 IMP 和 EXP 命令来实现。下面将详细介绍如何使用 IMP 和 EXP 命令进行全库迁移,并注意 full 参数的使用。 一、...
18. **Database Resumable**:在长时间运行的操作中,如索引重建,遇到问题时可暂停并恢复。 19. **Automatic Indexing with Machine Learning**:利用机器学习技术自动优化索引。 20. **Data Masking and ...
此角色包含了备份数据库所需的大部分权限,如`EXECUTE_CATALOG_ROLE`、`SELECT_CATALOG_ROLE`、`BACKUP ANY TABLE`以及`RESUMABLE`等系统权限。这些权限使得拥有该角色的用户可以完全备份数据库,并且能够在备份过程...
- **RESUMABLE**: 在遇到有关空间的错误时挂起,默认值为空。如果设置为`y`,则可以在遇到空间不足等问题时暂停并稍后再继续导入。 - **RESUMABLE_NAME**: 用来标识可恢复语句的文本字符串,默认值为空。用于指定可...
可以导出整个数据库、特定用户、表空间、表、索引、视图等。范围选择取决于具体需求和资源管理。 **四、导出分类:** 包括完全导出(Full Export)、增量导出(Incremental Export)和表/对象导出。完全导出导出...
1. **安装与配置**:指南会提供步骤来帮助管理员在Windows NT服务器上安装Oracle8i数据库软件,包括硬件需求、网络设置、磁盘空间规划以及安装过程中的选项选择。 2. **数据库创建与管理**:涵盖如何创建新的数据库...
### Oracle EXP/IMP 逻辑备份命令参数详解 #### 概述 在数据库管理与维护过程中,数据备份是一项至关重要的工作。Oracle 数据库提供了多种备份方式,其中逻辑备份是一种常见的手段,它通过 EXP 和 IMP 命令来实现...
选项中提到的DBVERIFY实用程序(C)是Oracle提供的一种用于检查数据文件物理完整性的工具,它可以用于检测数据块是否损坏、验证表空间或数据文件的数据。其他选项不适用于此目的:LogMiner(A)主要用于分析重做日志...
- **RESUMABLE**:在遇到有关空间的错误时是否挂起,默认为 N(不挂起)。 - **RESUMABLE_NAME**:标识可恢复语句的文本字符串。 - **RESUMABLE_TIMEOUT**:RESUMABLE 的等待时间。 - **COMPILE**:控制是否编译过程...
- **RESUMABLE**:遇到与空间相关的错误时是否挂起。 #### 六、总结 通过以上介绍可以看出,Oracle 10g提供了丰富的工具和选项来支持数据迁移。导出导入工具不仅能够满足基本的数据迁移需求,还能提供灵活的配置...
1. **Resumable Operations**:自Oracle 9i起引入,通过`DBMS_RESUMABLE`程序包支持暂停和恢复长时间运行的SQL或PL/SQL操作。 2. **Flashback Technologies**:自Oracle 10g开始,利用`DBMS_FLASHBACK`等程序包支持...
### Oracle exp、imp 注意事项与使用方法 #### 一、Oracle exp、imp 概述 在Oracle数据库管理中,`exp` 和 `imp` 是两个非常重要的工具,用于数据的导出(Export)和导入(Import)。它们为数据库管理员提供了一种...
这门课程的内部教材涵盖了Oracle数据库的体系架构、实例管理、数据库启动关闭、控制文件、redo日志、归档日志、日志挖掘、undo管理、检查点、实例恢复机制、存储架构、数据字典、表空间、表的类型、审计以及数据装载...
例如,CONSTRAINTS参数控制约束的导入导出,DESTROY参数用于在导入前删除已存在的对象,而RESUMABLE参数则使数据库在遇到空间错误时挂起,并可设置超时时间。 最后,导入可传输的表空间元数据是Oracle特有的一个...
但为了确保未来执行类似操作时不会立即出现错误,可以使用RESUMABLE_TIMEOUT设置来使得命令在空间不足时暂停执行,而不是直接返回错误。 5. ASM实例的关机操作:在自动存储管理(ASM)实例中,如果使用了SHUTDOWN ...
- **定义**:RESUMABLE TIMEOUT是指当Oracle遇到空间不足等错误时,并不立即返回错误或回滚操作,而是将操作置于挂起状态,直到问题解决或超时。 - **参数设置**:默认情况下,挂起状态将持续至少60秒。 - **注意...
根据压缩包内的文件名“resumable_space_trigger实验脚本.sql”,我们可以推测这是一个用于实验或演示如何创建AFTER SUSPEND触发器的SQL脚本,可能涉及到数据库空间管理,比如监控或限制用户使用数据库空间。...
- **RESUMABLE**:当遇到空间相关的错误时暂停导出。 - **RESUMABLE_NAME**:用于标识可恢复语句的文本字符串。 - **RESUMABLE_TIMEOUT**:等待可恢复操作的超时时间。 - **TTS_FULL_CHECK**:对TTS执行完全或部分...