Oracle AQ 使用
随着不同应用模块间的消息交互和通信成为一个关键的功能,并且变得越来越重要。Oracle引入了一种强大的队列机制,通过它程序间可以实现信息的交互,oracle把它称作为AQ - Advanced Queuing. 使用Oracle AQ,我们不需要安装额外的中间件,它是Oracle数据库的一个功能组件,只要你安装了Oracle 数据库就可以使用AQ了。接下来分两部分来介绍AQ的使用,使用之前我们要创建QUEUE.
我们创建一个自己的AQ的管理角色 "my_aq_adm_role" 和管理用户"aqadm",再把Oracle AQ 管理角色 "aq_adminstrator_role" 授权给"my_aq_adm_role".
CREATE ROLE my_aq_adm_role;
GRANT aq_adminsistator_role TO my_aq_adm_role
创建一个用户的角色 "my_aq_user_role" 和 普通用户"aquser" ,再把Oracle AQ的用户角色"aq_user_role"和一些基本操作需要的系统权限授权给 "my_aq_adm_role"
CREATE ROLE my_aq_user_role;
GRANT CREATE session, aq_user_role TO my_aq_user_role;
EXEC DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE(
privilege => 'ENQUEUE_ANY',
grantee => 'my_aq_user_role',
admin_option => FALSE);
EXEC DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE(
privilege => 'DEQUEUE_ANY',
grantee => 'my_aq_user_role',
admin_option = 'FALSE');
现在我们创建 AQ管理用户
CREATE USER aqadm IDENTIFIED BY aqadm
DEFAULT TABLESPACE elathen
TEMPORARY TABLESPACE temp;
GRANT my_aq_adm_role TO aqadm;
GRANT connect, resource TO aqadm; ----注意,resource角色一定要授给user,如果resource角色授权给
my_aq_adm_role, user将会失去 unlimited tablespace 权限
接着为我们下面example创建普通用户
CREATE USER aquser IDENTIFIED BY aquser
DEFAULET TABLESPACE elathen
TEMPORARY TABLESPACE temp;
GRANT my_aq_user_role TO aquser;
我们将在我们第一个queue中使用object type而不是NUMBER or VARCHAR2作为payload,这使我们更贴近实际应用。(payload是任何消息都使用的一种数据类型和结构).
上面做的工作都需要在DBA的权限下做,现在我们切换到AQ管理员
CONNECT aqadm/aqadm
CREATE TYPE queue_message_type AS OBJECT(
no NUBER,
title VARCHAR2(30),
text VARCHAR2(2000));
/
GRANT EXECUTE ON queue_message_type TO my_aq_user
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
这个问题以前困扰过我,两者后缀名都是.DBF。记得当时好像去论坛上发了个帖子问,不过好几天没人解答,无奈之下我就把帖子给结了。
今天正好在一本书中看到有讲两者区别的,又去网上搜了搜,小总结一下,记下来。
本地管理的临时表空间是基于临时文件的,这些文件与普通的数据文件非常相似,但它们还具有如下特性:
临时 ......
在很多企业级安装数据库时,常常有大规模的安装任务,这时使用响应文件来批量安装可以提高工作效率,下面介绍数据库软件的静默安装方式。
一、数据库服务器端安装
1. 生成安装响应文件
$./runInstaller -record -destinationFile /tmp/install_database_10g.rsp
这时会启动图形界面来录制我们需要的响应文件。
注意:
......
sysdate+(5/24/60/60) 在系统时间基础上延迟5秒
sysdate+5/24/60 在系统时间基础上延迟5分钟
sysdate+5/24 在系统时间基础上延迟5小时
sysdate+5 在系统时间基础上延迟5天
add_months(sysdate,-5) 在系统时间基础上延迟5月
add_months(sysdate,-5*12) 在系统时间基础上延迟5年
上月末的日期:select last_day(add_mon ......