oracle预定义角色教程文件Word下载.docx
- 文档编号:21757817
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:22.20KB
oracle预定义角色教程文件Word下载.docx
《oracle预定义角色教程文件Word下载.docx》由会员分享,可在线阅读,更多相关《oracle预定义角色教程文件Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
∙RESOURCE角色:
--是授予开发人员的
∙CREATEPROCEDURE--建立过程
∙CREATETABLE--建表
∙CREATETRIGGER--建立触发器
∙CREATETYPE--建立类型
∙DBA角色:
∙拥有系统所有系统级权限
∙IMP_FULL_DATABASE角色、EXP_FULL_DATABASE角色:
∙BACKUPANYTABLE--备份任何表
∙EXECUTEANYPROCEDURE--执行任何操作
∙SELECTANYTABLE--查询任何表
∙DELETE_CATALOG_ROLE角色:
∙这个角色是Oracle8新增加的,如果授予用户这个角色,用户就可以从表sys.aud$中删除记录,
∙sys.aud$表中记录着审计后的记录,使用这个角色可以简化审计踪迹管理。
∙SELECT_CATALOG_ROLE角色、EXECUTE_CATALOG_ROLE角色:
∙SELECT_CATALOG_ROLE角色具有从数据字典查询的权利,
∙EXECUTE_CATALOG_ROLE角色具有从数据字典中执行部分过程和函数的权利。
rollback不能回滚命令
∙某些命令隐含自动提交功能,最常见的有:
∙ALTER:
修改表、索引、用户、表空间等
∙CREATE:
创建表、视图、同义词、触发器、数据库链路、快照、序列、用户、表空间等对象
∙DROP:
删除已创建的任何对象
∙RENAME:
修改表、索引、视图的名字
查看session
∙SQL语句:
∙col回滚段名formata10
∙colSIDformat9990
∙col用户名formata10
∙col操作程序formata80
∙colstatusformata6trunc
∙SELECTr.name回滚段名,
∙s.sid,
∙s.serial#,
∙s.username用户名,
∙t.status,
∙t.cr_get,
∙t.phy_io,
∙t.used_ublk,
∙t.noundo,
∙substr(s.program,1,78)操作程序
∙FROMsys.v_$sessions,sys.v_$transactiont,sys.v_$rollnamer
∙WHEREt.addr=s.taddrandt.xidusn=r.usn
∙ORDERBYt.cr_get,t.phy_io
∙可用于:
表空间、回滚段、表、索引、分区、快照、快照日志
参数名称
缺省值
最小值
最大值
说明
INITIAL
5(数据块)
2(数据块)
操作系统限定
分配给Segment的第一个Extent的大小,以字节为单位,这个参数不能在alter语句中改变,如果指定的值小于最小值,则按最小值创建。
NEXT
1(数据块)
第二个Extent的大小等于NEXT的初值,以后的NEXT值=前一NEXT大小乘以(1+PCTINCREASE/100),如果指定的值小于最小值,则按最小值创建。
如果在alter语句中改变NEXT的值,则下一个分配的Extent将具有指定的大小,而不管上一次分配的Extent大小和PCTINCREASE参数值。
MINEXTENTS
1(Extent)回滚段为2个Extent
Segment第一次创建时分配的Extent数量
MAXEXTENTS
根据数据块大小而定
无限制
随着Segment中数据量的增长,最多可分配的Extent数量
PCTINCREASE
50%(Oracle816中为0%)
0%
指定第三个及其后的Extent相对于上一个Extent所增加的百分比,如果PCTINCREASE为0,则Segment中所有新增加的Extent的大小都相同,等于NEXT的值,如果PCTINCREASE大于0,则每次计算NEXT的值(用上面的公式),PCTINCREASE不能为负数。
创建回滚段时,不可指定此参数,回滚段中此参数固定为0。
OPTIMAL
----
不能小于回滚段初始分配空间
仅与回滚段有关,当回滚段因为增长、扩展而超过此参数的设定范围时,Oracle系统会根据情况动态地重新分配Extents,试图收回多分配的Extent。
FREELISTS
1
数据块大小限制
只能在CREATETABLE、CLUSTER、INDEX中指定FREELISTS和FREELISTGROUPS参数。
模式对象中每一个自由列表组中自由列表的数量
FREELISTGROUPS
取决于Oracle并行实例的数量
用户创建的数据库对象的自由列表组的数量,只有用OPS并行服务器选项时才使用这一参数,一个实例对应一个组。
BUFFER_POOL
给模式对象定义缺省缓冲池(高速缓存),该对象的所有块都存储在指定的高速缓存中,对于表空间或回滚段无效。
∙建议PCTINCREASE参数设置为0,可使碎片最小化,使每一个Extent都相同(等于NEXT值)
∙一旦建立了某个对象,它的INITIAL和MINEXTENTS参数不能修改(Oracle816中可修改MINEXTENTS参数)
∙对于NEXT和PCTINCREASE的任何修改都只影响后来分配的那些Extent
∙在分配一个新Extent时,系统直接按NEXT的值分配一个Extent,
∙然后用公式:
前一NEXT值*(1+PCTINCREASE/100)计算出下一个应该分配的Extent的大小,
∙并把计算结果保存到相关数据字典的NEXT_EXTENT列上,做为下一个应该分配的Extent的大小。
∙CREATETABLEtest(anumber)
∙STORAGE(
∙INITIAL100K
∙NEXT100K
∙MINEXTENTS2
∙MAXEXTENTS100
∙PCTINCREASE100);
∙解释:
∙初始给test表分配两个Extent,
∙第一个Extent是100K,因INITIAL=100K
∙第二个Extent是100K,因NEXT=100K
∙如果因表内数据增长,需要分配第三个Extent,因PCTINCREASE是100,则
∙第三个Extent是200K=100K+100K
∙第四个Extent是400K=200K+200K
∙可通过数据字典表DBA_TABLES、ALL_TABLES、USER_TABLES查看参数设置情况,如:
∙selecttable_name,initial_extent,next_extent,min_extents,max_extents,pct_increasefromuser_tables;
∙TABLE_NAMEINITIAL_EXTENTNEXT_EXTENTMIN_EXTENTSMAX_EXTENTSPCT_INCREASE
∙---------------------------------------------------------------------
∙TEST1064962129922100100
和权限有关的表
∙SQL>
selecttable_namefromdictwheretable_namelike'
%PRIV%'
;
select*fromuser_sys_privs;
--查看直接授予用户的系统权限
select*fromuser_role_privs;
--用户有哪些角色
select*fromuser_tab_privs;
--检查一个用户被授予和授予其他用户的对象级权限
select*fromdba_roles;
--查询系统中的角色
select*fromdba_sys_privs;
--查询角色的权利
select*fromdba_role_privs;
--查询角色是谁定义的
select*fromcolumn_privileges;
--
select*fromrole_role_privs;
--查询角色的授予和被授予关系
select*fromrole_sys_privs;
--查询角色被授予的系统级权限
select*fromrole_tab_privs;
--查询角色的对象级权限
select*fromsession_privs;
select*fromtab_privileges;
漫谈数据库的启动和关闭
对于DBA们来说,关闭和重新启动数据库以便优化、调整应用的运行是经常碰到的事情。
如果用户已经log进如了数据库,你用SHUTDOWNIMMEDIATE或SHUTDOWNABORT命令来执行关闭数据库,那用户将不能连接,直到数据库重新启动,用户时常会抱怨:
怎么又要重起。
其实,每次这样的启动关闭都是为了数据库能更好的运做。
这篇文章将具体介绍shutdown/startup操作时应想到的步骤和许多注意事项,或许这些能对你有所帮助。
NOTE:
在执行第一步前,SHUTDOWN数据库,不要提前关闭SQL*NET,直到你确认关闭了SERVER上的数据库后再关闭SQL*NET。
因为一旦你关闭了SQL*NET,用户将将失去和数据库的会话。
第一步---存档或删除老的tracefiles和logs当你启动ORACLE的一个实例(INSTANCE)时,ORACLE把关于该实例的诊断信息写入指定的trace和log文件。
每个后台进程都增加一个TRACE文件,它被存储在指定的目录(该路径由INIT.ORA或CONFIG.ORA文件中的BACKGROUND_DUMP_DEST参数指定)。
用户在数据库中遇到一个内部错误时也增加USERS'
TRACE文件,该文件的位置由INIT.ORA或CONFIG.ORA文件中的USER_DUMP_DEST参数指定。
TRACE文件的个数和名称形式由你的操作系统决定。
例如在UNIX下,文件名是一个数字加下画线加后台进程号,类似3_12345.trc,当你下一次启动实例时,一个新的文件将被产生,因为进程号的不同,文件名可能是3_13245.trc。
由于每次启动和关闭数据库时,ORACLE并不自动删除TRACE文件,所以如果忽略这个步骤,那这些没有用的文件将占据大量的自由空间。
所以DBA应该主动的管理这些文件,或删除或存档在别的指定目录下,如何管理主要是根据你自己的开发环境需要而订了。
SQL*NET也产生LOG文件,一般叫LISTENER.LOG,为了能知道他的位置,可以键入命令lsnrctlstatus
LISTENER.LOG文件大小也随着启动的次数不断的变大,所以通过妥善管理它也能有效的利用空间。
第二步---改名ALERTLOG文件ALERTLOG文件也是用来记录INSTANCE的诊断信息的。
它的存放目录也通过BACKGROUND_DUMP_DEST参数来指定。
一般情况下ALERTLOG文件命名方式为:
ALERT_.LOG。
ALTERLOG文件包括了一些数据库主要事件信息,例如:
startup,dhutdown,redolog的使用,tablespace的改变,文件的改变,内部错误信息,tablespace-backup的状态的改变等。
ALTERLOG文件是重要的,同时该文件的大小增长的速度也很惊人,如果你不检查他,一段时间后你想看看它将是很费劲,因为它已经很大了,查起来也费劲。
为了既能留下这些有用的信息,同时不至于浪费很大的空间,可以用改名的方法。
你可以在任何时候更改ALTERLOG文件名,甚至在DATABASEOPEN时。
当ORACLE不能找到被BACKGROUND_DUMP_DESC指定的文件时,他将增加一个新的ALTERLOG文件。
虽然改名不要求SHUTDOW,但选择在SHUTDOWN/STARTUP数据库时更改名字是一个好的主意。
NOTE:
下面的几步是在restart数据库时做的。
第三步---产生一个增加控制文件(CREATECONGROLFILE)命令的文件为了recover一个被破坏的数据库,你不得不用CREATECONTROLFILE命令来重建controlfiles。
CREATECONTROLFILE命令有两个使用:
1、在你的现有CONTROLFILES文件破化后重建它2、在ALTERDATABASE级别的参数时,如:
MAXDATAFILES
你可以手输入命令,但最好在STARTUP前发送一命令,以便你拥有最新版本的CREATECONTROLFILE命令。
从进入SQLDBA,SERVERMANAGER或者SQL*PLUS,输入:
alterdatabasebackupcontrolfiletotrace;
该命令在USER_DUMP_DESC参数指定的路径产生一个TRACE文件,名字可能是SIDNAME_PROCESSID.TRC,该文件将包含针对你的数据库的完整的CREATECONTROLFILE语法。
第四步--把PACKAGES和PROCEDURES驻留SGA区众所周知,当PL/SQLOBJECTS被一个用户调用时,它将被存储在SGA区的SQL共享池中,当别人再度调用该OBJECT时直接从SGA区读取,能感受到明显的速度提升。
所以,把常用的PACKAGES和PROCEDURES在STARTUP时就载入并驻留SGA,将提高应用的整体性能。
通过从新编译、调用等方法可以调用OBJECT(PROCEDURES或CURSORS)进SGA,然后用DBMS_SHARED_POOL.KEEP来驻留SGA。
如下:
alterpackageAPPOWNER.ADD_CLIENTcompile;
executeDBMS_SHARED_POOL.KEEP('
APPOWNER.ADD_CLIENT'
'
P'
);
(P代表PROCEDURES,C代表CURSORS)
一般每个数据库包括两类驻留程序:
1、数据库的核心PACKAGES2、用户自定义的PACKAGES核心PACKAGES包括SYS所有的PACKAGES,STANDARD,DBMS_SQL,DBMS_UTILITY,DIUTIL,为了查看你的INSTANCE中那些被驻留了,查询DBA_OBJECT_SIZE,用下面的语句:
selectOwner,Name,Type,Source_Size+Code_Size+Parsed_Size+Error_SizeTotal_BytesfromDBA_OBJECT_SIZEwhereType='
PACKAGEBODY'
orderby4desc;
哪些初始化参数最影响Oracle系统性能
∙什么是SGA(系统全局区)
1、系统全局区(SGA)是一个分配给Oracle的包含一个Oracle实例的数据库的控制信息内存段。
主要包括数据库高速缓存(thedatabasebuffercache), 重演日志缓存(theredologbuffer), 共享池(thesharedpool), 数据字典缓存(thedatadictionarycache)以及其它各方面的信息。
∙db_block_buffers
1、数据高速缓冲区2、访问过的数据都放在这一片内存区域,该参数越大,Oracle在内存中找到相同数据的可能性就越大,也即加快了查询速度。
3、db_block_buffers以块为单位,假如DB_BLOCK_SIZE=2K,db_block_buffers=3200,则占用内存=3200*2K=6400K。
∙share_pool_size
1、SQL共享缓冲池2、该参数是库高速缓存和数据字典的高速缓存。
∙Log_buffer
1、重演日志缓冲区
∙sort_area_size
1、排序区
∙processes
1、同时连接的进程数
∙global_names
1、如果“数据库链路名”和它所要连接的“数据库”拥有相同的名字,则设置global_names=TRUE, 否则,设置global_names=FALSE
∙db_block_size
1、数据库块大小2、Oracle默认块为2KB,太小了,因为如果我们有一个8KB的数据,则2KB块的数据库要读4次盘,才能读完, 而8KB块的数据库只要1次就读完了,大大减少了I/O操作。
3、数据库安装完成后,就不能再改变db_block_size的值了,只能重新建立数据库 并且建库时,要选择手工安装数据库。
∙open_links
1、同时打开的链接数
∙dml_locks
1、用户一次可对表设定锁的最大数目2、如果有三个用户修改6个表,则需18个DML锁来实现并行操作,如果设定DML_LOCKS不够大,操作时执行将中断,你可以通过你的应用程序的操作规模和最大的并行使用的用户数来估算系统所需要的DML_LOCKS的值,但该值的大小对数据库的其他性能没有影响,所以一般都把它设得很大,远超过实际中可能达到的值,如果在系统运行中经常发生表锁死的现象,就应该考虑加大该值。
∙open_cursors
1、打开光标数2、这个参数可以同时被每个用户进程拥有,这个参数的最大值依操作系统不同而不同。
3、在创建一个包含很多表的合成视图时,如果此参数很小,则视图创建会不成功。
∙dbwr_io_slaves
1、后台写进程数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 预定 角色 教程 文件