oracle11g ora_00845错误解决
ORA-00845错误解决SQL> startup;ORA-00845: MEMORY_TARGET not supported on this system这就是SGA大小超过了memory_max_target1:调整sga变小,这个不推荐2:加大/dev/shm查看/dev/shm大小[root@primary shm]# df -h /dev/shmFilesystem Size Used Avail Use% Mounted onnone 2.0G 976M 1.1G 49% /dev/shm而之前SQL> show parameter MEMORY NAME TYPE------------------------------------ ----------------------VALUE------------------------------hi_shared
人事说查询很慢解决!
人事今天打工资单说很慢,半天没有查询出来!我的第一反应就是要找出 人事查询的“sql语句” 和执行计划。1:现场看查询画面2:确定查询时间,返回服务器,使用v$session,定位登录时间。select * from v$session通过 username, logon_tiem 就可以定位登录的人事3:通过 v$session找出sql_hash_value 和 paddress(有时候不出要这个参数)4:通过v$sqlarea 就可以找出sql语句select sql_text from v$sqlareawhere hash_value=' '5:如果sql语句太长,可以通过v$sqltext select * from v$sqltextwhere hash_value=''这里sql语句是从下至上显
PL/SQL复制中文出来变成乱码
pl/sql查询中文出来,是能够正确显示,但是复制出来到电脑上 ,中文就变成乱码。有很多人认为是字符集的问题,有人说是数据库字符集设置问题。等等实际上是 window xp 输入法设置问题我在语言设置栏里面,只保留了英文,美式键盘,和google拼音输入。删除美式键盘,添加中文键盘结果就好了!select ÄêÔ , ±àÂë , ²¿ÃÅ , ÐÕÃû , ³öÇÚÌìÊý , ²¡¼ÙÌìÊý ,
LINUX+ORACLE 11G所有安装命令
按照oracle官方网站 配置,我配置了一下oracle11g,绝对是权威的资料。不带个人色彩。由于时间匆匆,没有做每个步骤说明,如果读者需要问个明白请和我联系。QQ 149196034msn pengqingxiang75@sina.com$ xhost somehost.us.example.com$ telnet fully_qualified_remote_host_nameOn Linux x86:At least 1 GB of RAM[root@primary ~]# grep MemTotal /proc/meminfoMemTotal: 4147052 kBRAM Swap SpaceBetween 1 GB and 2 GB 1.5 times the size of RAMBetween 2 GB and 16 GB Equal to the size of
oracle _document 官方文档
QQ 149196034最近开始喜欢上看ORACLE 官方文档,一方面处于学习english,另一方面官方文档比任何资料都权威!google上很多人的资料仅仅只能作为参考,对于我这样一个半路出家的人,技术中等的人,看文献还是最好的选择!http://www.oracle.com/technetwork/database/enterprise-edition/documentation/database-093888.html这个网页就可以下载 oracle 11g. E11882-01.如果你不会,以第一步先到www.oracle.com----- database------downloads------docmentation index------oracle database------ 在在下面选择需要下载的版本这样跳出来的网址
静态数据字典视图:dba,all,user
静态数据字典视图dba_ 数据库中的所有对象 all_ 当前用户可以访问的对象user_当前用户拥有的对象user_tables 当前用户拥有的所有的表 all_tables 当前用户拥有的所有的表和用户有权限能够访问的表select on tb_saledba_tables 超级集合需要具有select any tabledba_objectsdba_dictionary 当前用户可以访问的所有数据字典视图dba_objectsdict_columns 记录字典视图列(column)及其相关说明select column_name,comments from dict_columnswhere table_name=
告警日志和oerr ora 错误
dba每天都要看告警日志告警日志命名方式:alert_<sid>.log默认存放位置都在:$ORACLE_BASE/ADMIN/SID/bdump设置存放位置的参数为:background_dump_destSQL> show parameter background_dump_destNAME TYPE VALUE------------------------------------ ----------- ------------------------------background_dump_dest string /oracle/admin/mis/bdump告警日志出现ora错误的时候,可以用命令oerr 打开,看详细的信息[oracle@DELL bdump]$ oerr ora 0744507445, 00
SGA调整命令和总结
SGA总结sga 调整:系统全局区又称SGA (System Global Area)oracle 9i:sga_max_sizeoracle 10g:sga_target_size,sga_max_size;命令:alter system set sga_target=1000m scope=spfile;oracle 10g 以上版本只需要调整sga_max_size 和sga_target_size(<=sga_max_size)的大小,不需要调整large_pool,java_pool.oracle 8i 和oracle 9i这需要调整SGA的特点:1、SGA是共享的。即当有多个用户同时登录了这个实例,SGA中的信息可以被它们同时访问;2、一个SGA只服务于一个实例。也就是说,当一台机器上有多个实例运行时,每个实例都有一个自己
create controlfile 创建控制文件
突然断电,或者shutdown abort 会引起控制文件损坏,如果控制文件没有备份,三个控制文件全部损坏,那么只有重建控制文件。命令:(官方文档)STARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE "PRIMARY" RESETLOGS ARCHIVELOG-- SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 226LOGFILE GROUP 1 '/opt/oracle/oradata/primary/redo01.log' SIZE 10M, GROUP 2 '/opt/oracle/oradata/primary/redo02.log' SIZE 10M, GROUP 3 '/op
imp 与commit
如果imp,那么记得要加入参数 :commit=y这个参数表示导入数据的时候,将数据分批提交。从而避免大的DMP文件导入不成功的时候,引起大事务回滚,引发数据库性能短时间下降![@more@]
move 和碎片整理
move move表的时候,索引会失效,索引需要重建alter table table_name move talbespace tablespace_name索引移到另外一个表空间alter index index_name rebuild (重建索引)alter index index_name rebuild tablespace tablespace_name;如果是单级分区,则使用关键字partition,如果是多级分区,则使用subpartition替代partition。如果分区或分区索引比较大,可以使用并行move或rebuild,parallel(degree 2)。select 'alter table '||owner||'.'||segment_name||' move partition ' ||partition_name||' tablespace HWM; ',bytesf
AWR 生成步骤
$cd $ORACLE_HOME/rdbms/adminsqlplus /nologconn /as sysdba;SQL> exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (flush_level=>'ALL');PL/SQL procedure successfully completed.SQL> exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (flush_level=>'ALL');PL/SQL procedure successfully completed.SQL> @?/rdbms/admin/awrrpt.sqlCurrent Instance~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance----------- ------------ -------- ------------ 1578307715 ZXHS 1 zxhsSpecify the R
hint和cbo建议
DBA在遇到sql性能低下的时候,经常会强制走比较好的执行计划,强制走某个索引,这是一个很不好的习惯。当执行计划不好,引起全表扫描,table full scan,或者索引走的不对,cost很大的时候,那么我的建议是:对表或者系统重新统计信息,查看统计信息是否陈旧,是否准确。统计信息方法是否对,有的时候自动统计信息并不一定准确!特别是oracle 9i,10g有很大的区别![@more@]
导入数据库一个建议
不同版本数据库在全导入的时候,会导入统计信息:如果是不同版本,比如oracle10g,oracle9i,最好加入参数:“statistics=none"导入完后,在重新统计信息。10g和9.2.0.4 和9.0.2.1不能导入统计信息,否则会造成执行计划选择错误的路径。[@more@]
index_name and job
1:有时候在tuning sql 查看执行计划的时候,特别需要查看表的索引,使用all_indexes /dba_indexes特别有用2:查看正在运行的JOB;select owner,table_name,index_namefrom all_indexeswhere owner='WILIAM'AND TABLE_NAME LIKE'TB_SALE';OWNER TABLE_NAME INDEX_NAME------------------------------ ------------------------------ ------------------------------WILIAM TB_SALE IDX2_TB_SALEWILIAM TB_SALE
union all 和union 使用原则
一般情况下union all 比union 要快。但是并不是所有情况下如此,有的情况下union all 比union慢。分析:union all 连接表的时候,不需要比对数据,不会删除表中重复数据。union:会比对两个表的数据,删除重复数据。原则:union all 和union使用原则,不能影响表中总体数据,不能表中的数据的选择范围。既不能缩小范围,也不能扩大范围。[@more@]
delete statistics 删除统计信息
今天一个sql语句很奇怪,统计信息以后,表竟然走全表扫描。后来没有办法我只得删除统计信息。exec dbms_stats.delete_table_stats('missh','cancel_orderln');删除统计信息很容易:两个参数表的“宿主”,和“表名”,两个参数都用单引号'' sql具体语句如下:SELECT ORDDATE, A.ORDNO,
RBO:hint 使用方法
两个表采用hint写法/*+index(t1 ind_t1_name) index(t2 ind_t2_name)*/t1,t2表明,ind_t1_name,ind_t2_name索引名一个表/*+index(t1 ind_t1_name) */走rule/*+RULE */[@more@]
index desc:消除排序优化
很多查询,由于用户要求,会在查询中使用order by 排序,往往这个排序会极大影响数据性能。解决方法:创建索引,引入排序。比如:oder by a desc,b desc,c desc那么可以:create index idx_desc on table_name(a desc,b desc,c desc);那么在执行计划中就可以看到查询语句使用的是:index full scan,而不是 index range scan 和sort(order by a,b,c)极大提高查询速度![@more@]
RBO表的顺序
讨论表的顺序有几个前提;(一):RBO (二):table full scanselec * from 在选择驱动表和被驱动表的时候,肯定和from有关系,一般是以from最后面的一个表,也就是最右边的一个为驱动表的。所以这个时候,应该把小表放在最后面。但是,当不是全表扫描的时候,数据库会改表这个选择顺序。当有索引扫描的时候,会根据索引来选择驱动表和被驱动表。而且如果数据库优化器用的是CBO,那么和FROM后面的表顺序无关。[@more@]