【参数】resumable_timeout

resumable_timeout这个参数功能时是在指定恢复等待时间,在等待期间若未处理异常,那么,事务将中断。

往往我们的表空间都是非自动扩展的,当我们做一个大的操作的时候,可以小利用一下这个参数,我们以insert为例做一下测试:


1:创建一个非自动扩展的小表空间 

SYS@ORCL>create tablespace ts_timeout datafile '/u01/oracle/oradata/ORCL/ts_timeout_01.dbf' size 1m;

Tablespace created.

SYS@ORCL>


2:创建测试表tab_timeout表空间使用 ts_timeout

SYS@ORCL>create table tab_timeout(col1 char(10),col2 char(10)) tablespace ts_timeout;

Table created.

SYS@ORCL>


3:查看参数值

SYS@ORCL>set time on

17:22:02 SYS@ORCL>set timing on

17:22:05 SYS@ORCL>show parameter resumable_timeout

NAME                                 TYPE        VALUE

------------------------------------ ----------- ---------------

resumable_timeout                    integer     0


17:22:24 SYS@ORCL>


4:插入大量数据,使其撑满表空间,让其报错

17:22:28 SYS@ORCL>

17:22:28 SYS@ORCL>insert into tab_timeout select rownum,rownum from dual connect by rownum<=10000000000;

insert into tab_timeout select rownum,rownum from dual connect by rownum<=10000000000

*

ERROR at line 1:

ORA-01653: unable to extend table SYS.TAB_TIMEOUT by 8 in tablespace TS_TIMEOUT

 

Elapsed: 00:00:00.10

17:22:30 SYS@ORCL>


5:会话级修改参数

17:22:37 SYS@ORCL>alter session set resumable_timeout=10;

System altered.

Elapsed: 00:00:00.02

17:22:46 SYS@ORCL>

17:22:47 SYS@ORCL>show parameter resumable_timeout

NAME                                 TYPE        VALUE

------------------------------------ ----------- ---------------

resumable_timeout                    integer     10


17:22:49 SYS@ORCL>


6:再次插入超出表空间承受范围的数据

17:22:50 SYS@ORCL>insert into tab_timeout select rownum,rownum from dual connect by rownum<=10000000000;

insert into tab_timeout select rownum,rownum from dual connect by rownum<=10000000000

*

ERROR at line 1:

ORA-30032: the suspended (resumable) statement has timed out

ORA-01653: unable to extend table SYS.TAB_TIMEOUT by 8 in tablespace TS_TIMEOUT

 

Elapsed: 00:00:14.13

17:23:06 SYS@ORCL>

我们会发现,第四步瞬间就抛出了异常,修改了参数以后,第六步等待了resumable_timeout设置的秒数后才抛出的错误,事务才结束。


小结:

在等待的时候,alert日志会有相应的错误信息。

我们在做可能出现问题且可以控制的操作时,可以将这个参数设置合适大小,比如:晚上下班公司要导入一个dmp文件,那么表空间大小是否够用还不能确定,那么,我们就可以将这个参数设置一个相对较大的值,即我第二天上班的时候还是挂起状态,那么,万一有问题了,我们早晨处理还来得及,避免了重复操作,节约了时间及精力。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/685769/viewspace-743092/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/685769/viewspace-743092/

resumable.js 是一个 JavaScript 库,用于在网络连接中断或暂停时,使文件上传能够恢复。以下是 resumable.js 的官方教程: 1. 安装 resumable.js 你可以通过 npm 安装 resumable.js: ``` npm install resumablejs ``` 或者,你可以将 resumable.js 下载到本地,并将其包含在你的 HTML 文件中: ``` <script src="path/to/resumable.js"></script> ``` 2. 准备 HTML 代码 在你的 HTML 文件中添加以下代码: ``` <input type="file" id="fileInput"> <button id="uploadButton">Upload</button> ``` 这将创建一个文件上传控件和一个上传按钮。 3. 初始化 resumable.js 在你的 JavaScript 文件中添加以下代码: ``` var r = new Resumable({ target: '/upload', chunkSize: 1 * 1024 * 1024, simultaneousUploads: 4, testChunks: false }); r.assignBrowse(document.getElementById('fileInput')); r.assignDrop(document.body); document.getElementById('uploadButton').addEventListener('click', function() { r.upload(); }); ``` 这将创建一个 Resumable 对象,并将其绑定到文件上传控件和上传按钮。`target` 属性指定文件上传的目标 URL,`chunkSize` 属性指定上传的块大小,`simultaneousUploads` 属性指定同时上传的块数,`testChunks` 属性指定是否测试上传的块。 4. 处理事件 你可以通过监听 Resumable 对象的事件来处理上传过程中的不同阶段。以下是一些常用的事件: - `fileAdded`:当文件添加到上传队列时触发。 - `fileSuccess`:当文件上传成功时触发。 - `fileError`:当文件上传失败时触发。 - `progress`:当上传进度发生变化时触发。 你可以使用以下代码来监听事件: ``` r.on('fileAdded', function(file) { console.log('File added:', file); }); r.on('fileSuccess', function(file) { console.log('File uploaded:', file); }); r.on('fileError', function(file, message) { console.log('File upload error:', file, message); }); r.on('progress', function() { console.log('Progress:', r.progress()); }); ``` 5. 完整示例 下面是一个完整的示例,演示如何使用 resumable.js 进行文件上传: ``` <!DOCTYPE html> <html> <head> <title>Resumable.js Example</title> <script src="path/to/resumable.js"></script> </head> <body> <input type="file" id="fileInput"> <button id="uploadButton">Upload</button> <script> var r = new Resumable({ target: '/upload', chunkSize: 1 * 1024 * 1024, simultaneousUploads: 4, testChunks: false }); r.assignBrowse(document.getElementById('fileInput')); r.assignDrop(document.body); r.on('fileAdded', function(file) { console.log('File added:', file); }); r.on('fileSuccess', function(file) { console.log('File uploaded:', file); }); r.on('fileError', function(file, message) { console.log('File upload error:', file, message); }); r.on('progress', function() { console.log('Progress:', r.progress()); }); document.getElementById('uploadButton').addEventListener('click', function() { r.upload(); }); </script> </body> </html> ``` 这个示例将上传文件块大小设置为 1MB,同时最多上传 4 个块。在文件添加、上传成功、上传失败和上传进度发生变化时,会在控制台中输出相应的信息。当点击上传按钮时,将触发上传操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值