我们先来看一个考题:
In the PROD database you have granted the RESUMABLE system privilege to the CONNECT role.
Resumable space operation has been enabled for all user sessions.
You want users NOT to be aware of any kind of space-related problems while performing transactions.
Instead, you want the problem to be resolved by a database trigger automatically.
Which combination of triggering time and event would you use to achieve this objective?
A.AFTER CREATE
B.AFTER SUSPEND
C.BEFORE CREATE
D.AFTER TRUNCATE
E.BEFORE SUSPEND
F. AFTER INSERT OR DELETE OR UPDATE
G.BEFORE INSERT OR DELETE OR UPDATE
答案是:B。
参考dochttp://download.oracle.com/docs/cd/B19306_01/server.102/b14231/schema.htm#sthref2075
试验如下:
session1:
SQL> create tablespace users datafile 'E:ORACLEPRODUCT10.2.0ORADATAORCLUSE
RS.DBF' SIZE 3M;
表空间已创建。
SQL> grant resumable to xys;
授权成功。
SQL> create or replace trigger trigg_system
2 after suspend on database
3 begin
4 dbms_resumable.set_timeout(10);
5 end;
6 /
警告: 创建的触发器带有编译错误。
SQL> show error
TRIGGER TRIGG_SYSTEM 出现错误:
LINE/COL ERROR
-------- -----------------------------------------------------------------
2/2 PL/SQL: Statement ignored
2/2 PLS-00201: 必须声明标识符 'DBMS_RESUMABLE'
SQL> create or replace trigger trigg_system
2 after suspend on database
3 begin
4 dbms_resumable.set_timeout(10);
5 end;
6 /
警告: 创建的触发器带有编译错误。
SQL> connect /as sysdba
已连接。
SQL> grant execute on dbms_resumable to xys;
授权成功。
SQL> connect xys/manager
已连接。
SQL> create or replace trigger trigg_system
2 after suspend on database
3 begin
4 dbms_resumable.set_timeout(10);
5 end;
6 /
触发器已创建
session2:
SQL> create table t_resumable tablespace users as select *from dba_objects;
表已创建。
SQL> insert into t_resumable select *from t_resumable;
insert into t_resumable select *from t_resumable
*
第 1 行出现错误:
ORA-01653: 表 XYS.T_RESUMABLE 无法通过 128 (在表空间 USERS 中) 扩展
SQL> alter session enable resumable;
会话已更改。
--注意这里insert操作会等待10秒,10秒之后出现了错误
SQL> insert into t_resumable select *from t_resumable;
insert into t_resumable select *from t_resumable
*
第 1 行出现错误:
ORA-30032: 挂起的 (可恢复) 语句已超时
ORA-01653: 表 XYS.T_RESUMABLE 无法通过 128 (在表空间 USERS 中) 扩展
--回到session1修改一下timeout时间(10秒有些短,来不及修改datafile 4的autoextend属性),单位是秒
SQL> create or replace trigger trigg_system
2 after suspend on database
3 begin
4 dbms_resumable.set_timeout(60);
5 end;
6 /
触发器已创建
session2:
--此时下面insert会等待60秒,如果60秒之后发现空间可用,则继续执行
SQL> insert into t_resumable select *from t_resumable;
已创建11413行。
--此期间在session1中修改datafile 4使其能自动扩展
SQL> alter database datafile 4 autoextend on;
数据库已更改。
SQL>
分享到:
相关推荐
标题中的“【脚本】Registering an AFTER SUSPEND Trigger”涉及到的是数据库...通过阅读这篇博文和执行提供的实验脚本,读者可以深入理解AFTER SUSPEND触发器的工作原理,以及如何将其应用于实际的数据库管理系统中。
通常,这个master分支包含了项目的主要代码、示例、测试用例以及文档,方便开发者学习和调试。在实际应用中,你需要根据项目需求,引用库文件,配置相关参数,并处理上传成功或失败的回调,以实现完整的文件上传功能...
在IT行业中,文件上传是常见的功能之一,尤其在云存储、社交媒体和其他大数据分享平台中更是不可或缺。...在实际项目中,还需要考虑安全性,如防止恶意文件上传,以及优化性能,如通过多线程处理分片,以提高上传速度。
在Python中,`resumable-urlretrieve`是一个非常实用的库,主要用于处理大文件的下载,特别是网络传输过程中可能出现中断的情况。这个库的名字暗示了它的核心功能——可恢复的URL获取,即当下载中断后,可以从上次...
1. **初始化**: 首先,我们需要导入s3resumable库,并创建一个S3ResumableUpload对象,配置AWS的访问密钥和秘密访问密钥,以及目标S3 bucket的信息。 2. **分块上传**: 使用S3ResumableUpload对象的`initiate_...
`google-resumable-media`库是云原生环境下的一个工具,因为它简化了与Google Cloud存储服务的交互,使得开发者能更好地利用云平台的特性。 Python库的使用通常涉及安装、导入和调用其功能。对于`google-resumable-...
在Django项目的设置文件中,可能需要配置一些与`django-resumable`相关的参数,例如设置存储文件的位置,以及定义如何处理上传完成后的文件。同时,确保你的Django应用已将`django-resumable`注册到`INSTALLED_APPS`...
什么是Resumable.js Resumable.js是一个JavaScript库,可通过提供多个同时,稳定和可恢复的上载。 该库旨在将容错功能引入通过HTTP上传大文件的过程。 这是通过将每个文件分成小块来完成的。 然后,每当块的上载...
使用 resumable.js 上传文件的 Flask 应用程序。 这是一个例子。 它可能不应该按原样使用。 贡献 分叉吧 创建您的功能分支( git checkout -b my-new-feature ) 提交您的更改( git commit -am 'Added some ...
如果您想从一个域加载 resumable.js 库并将您的 Node.js 驻留在另一个域上,您必须允许来自 '*' 的 'Access-Control-Allow-Origin'。 请记住,启用此功能存在一些潜在的安全风险。 如果你还想实现跨域上传,打开 app...
18. **Database Resumable**:在长时间运行的操作中,如索引重建,遇到问题时可暂停并恢复。 19. **Automatic Indexing with Machine Learning**:利用机器学习技术自动优化索引。 20. **Data Masking and ...
VTS(Vendor Test Suite)是一种自动化测试工具,用于测试 Android 原生系统的实现情况。在 Ubuntu 16.04 环境中搭建 VTS 环境,需要按照以下步骤操作: 首先,需要安装 Python 开发工具包、协议缓冲区工具和 ...
《tus-resumable-upload-protocol:打造可恢复的文件上传体验》 在现代互联网应用中,文件上传是一项常见的功能,然而,用户在上传大文件时可能会遇到网络不稳定、服务器故障等问题,导致上传中断。为了解决这些...
1Document No: N4286Supersedes: N4134Date: 2014-11-18Reply to: Gor Nishanov (gorn@microsoft.com), Jim Radigan (jradigan@microsoft.com)Resumable Functions (revision 3) Contents Revisions and History ....
可恢复的http下载(WIP) 可恢复的http下载(er) api 安装 使用可以: npm install @ironsource/rhd 执照 :copyright:ironSource ltd
在C++编程中,Lambda表达式是一种强大的特性,它允许我们快速定义匿名函数,并可以直接在代码中使用。然而,标准的C++ Lambda并不支持异常安全的恢复机制,一旦Lambda内部抛出异常,程序通常会终止执行。为了克服这...
此角色包含了备份数据库所需的大部分权限,如`EXECUTE_CATALOG_ROLE`、`SELECT_CATALOG_ROLE`、`BACKUP ANY TABLE`以及`RESUMABLE`等系统权限。这些权限使得拥有该角色的用户可以完全备份数据库,并且能够在备份过程...
谷歌师兄的leetcode刷题笔记gcs-resumable-upload 使用内置的可恢复行为将文件上传到 Google Cloud Storage $ npm install gcs-resumable-upload const { upload } = require ( 'gcs-resumable-upload' ) ; const fs...
这使您可以正确捕获代码中的功能范围,并根据需要与这些范围进行交互。 例如: var resumable = require('resumable-eval')var session;(function() { var x = 1 session = eval(resumable) // Save the ...
HTML5的上传进度条功能是现代网页开发中的一个重要特性,它极大地提升了用户在上传大文件时的体验。在传统的HTML4中,用户在上传文件时往往只能等待浏览器处理完成,无法得知上传进度,这在处理大文件时尤其让人感到...