oracle的性能判断需要综合数据库的多个运行指标来判断:
创新互联公司自2013年创立以来,先为西工等服务建站,西工等地企业,进行企业商务咨询服务。为西工企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
1、进程数量和占用cpu:这个主要看有没有长时间占用cpu的进行。通常会判断大出sql,需要优化;这个可以用执行计划或者awr报告查看;
2、内存占用:主要用系统命令查看ora_占用和系统总内存的比例,swap的使用率;通常swap使用率低就没事;这个主要使用系统命令;
3、磁盘占用率:防止磁盘空间不足,需要的主要在系统和用户表空间、RMAN等操作上;这个主要使用系统命令;RMAN命令查看
Oracle数据库的完整性有三个:实体完整性、参考完整性和自定义完整性。它的实现是通过5五个约束来完成的。五个约束如下:
主键 primary key
非空 not null
唯一 unique
检查 check
外键 foreign key
Oracle全文检索配置方法:
1.检查数据库是否具有全文检索功能(这是针对已经建成使用的数据库)
查看用户中是否存在ctxsys用户,查询角色里是否存在ctxapp角色。以上两个中的1个不满足(不存在),则说明没有装过全文检索功能。
使用contains函数的时候,若没有全文检索则会报错的。
2.若没有,则需要手动建立,先建立全文检索要使用的空间
sqlplus / as sysdba --进入控制台
create tablespace Idx_ctxsys datafile '/oradata/sg186fx/ctxsys01.dbf size 10240M autoextend on next 32M maxsize 20480M;--创建全文检索使用的表空间
3.创建全文检索使用的用户和角色及相应的包,则需要执行oracle自带的一个脚本:cd $ORACLE_HOME/ctx/admin/catctx.sql
还是在sqlplus中执行:
@?/ctx/admin/catctx.sql ctxsys Idx_ctxsys temp nolock
在执行这个脚本的时候,输入了几个参数,第一个参数ctxsys为ctxsys用户的密码
第二个参数Idx_ctxsys为ctxsys用户要使用的表空间
第三个参数temp为ctxsys用户使用的临时表空间
第四个参数nolock为ctxsys用户处于解锁状态。
4.创建完成后,要登录ctxsys用户
connect ctxsys/ctxsys
执行以下脚本:@?/ctx/admin/defaults/drdefus.sql(这是个很重要的脚本,后面创建索引会使用该脚本创建的信息)
5.创建全文索引语法分析器
先要明确使用全文索引的用户,我要使用全文索引的是sgpm用户
因此
grant execute on ctxsys.ctx_ddl to sgpm with grant option;
connect sgpm/sgpm
设置语法分析器:
exec ctx_ddl.drop_preference('chinalexer');
exec ctx_ddl.create_preference('chinalexer','chinese_lexer');
设置词法属性:
exec ctx_ddl.drop_preference('idx_c_store');
begin
ctx_ddl.create_preference('idx_c_store','BASIC_STORAGE');
ctx_ddl.set_attribut('idx_c_store','I_TABLE_CLAUSE','tablespaces Idx_ctxsy');
ctx_ddl.set_attribute('idx_c_store','I_INDEX_CLAUSE','tablespace Idx_ctxsy compress 2');
end;
/
6.创建索引
create index sgpm.idx_c_cons_name on sgpm.c_cons(cons_name) indextype is ctxsys.context parameters('lexer chinalexer storage idx_c_store');
7.同步索引
variable jobno number;
begin
dbms_job.submit(:jobno,'pkg_sp_tools.p_cont_sys_index();',sysdate,'trunc(sysdate)+19/24+1'); --执行的是个性化方法。
end;
/
普通的就是用:
exec ctx_ddl.sync_index('idx_c_cons_name');
到此,全文检索创建成功,contains函数就可以正常使用了。
注意:创建的过程中会出现ORA-29879:cannot create multiple domain index on a column listusing same indextype ,这说明在其他用户下已经建立了该索引。
1 、如何启用审计?
修改数据库的初始化参数audit_trail ,从none 修改为你需要的值。
它的可选项有很多,如下所示:
AUDIT_TRAIL = { none | os | db | db,extended | xml | xml,extended }
我们选择db 值作为该参数值。使得审计功能处于打开状态,将审计记录保存在数据库sys.aud$表中。
修改初始化参数文件spfile 中的此参数配置值
ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE sid='*';
注意,这个参数需要数据库实例重启之后才能生效。
2 、审计有哪些功能
可以审计数据库对象的DML 和DDL 操作,以及查询、执行和一些系统事件如登录和退出。
如下所示:
DDL (CREATE, ALTER DROP of objects)
DML (INSERT UPDATE, DELETE)
SELECT
EXECUTE
SYSTEM EVENTS (LOGON, LOGOFF etc)
每个功能还有选项,如在每个会话还是每个访问中审计,是成功或不成功时审计。
完整的audit 的语法如下:
AUDIT
{ sql_statement_clause | schema_object_clause | NETWORK }
[ BY { SESSION | ACCESS } ]
[ WHENEVER [ NOT ] SUCCESSFUL ] ;
3 、如何审计某表的数据插入操作
现在的问题是找出什么应用向表插入了记录。在应用程序的逻辑上,这个表的数据只会更新,不会插入。
因此,在审计功能打开后,使用这个下列命令审计某表的插入操作。
audit insert on table_name by access;
执行成功后,此表上每一次插入操作都会被记录在sys.aud$ 表中。
4 、如何查看审计结果
可以查询dba_audit_trail 系统视图,该视图显示就是sys.aud$ 表保存的审计结果。这个表的存储空间是system ,如果你需要大量长期审计某些操作,请注意维护这张表。
一般维护方法有两个,定期执行truncate 操作和将表的存储表空间移植到一个新建的独立表空间上。
5 、如何取消审计
使用noaudit 代替audit 命令符就可, 如noaudit insert on table_name by access;
oracle检测坏块的方式:
1、利用oracle的RMAN工具
2、利用dbv工具检测
3、利用 exp/imp工具检测
其中2、3的方式无法彻底检测所有坏块,所以重点介绍下RMAN方式
RMANbackup check logical validate datafile n ;
可以检查数据文件是否包含坏块,同时并不产生实际的备份输出。
而且当使用Recovery Manager进行实际的数据库备份时,同时也就进行了坏块
检查。但要注意的是,在线使用Recovery Manager扫描坏块和备份时,需要数
据库运行在归档模式(archive log),否则只能在数据库未打开的情况下进行。