
oracle
Cages
care about your craft
展开
-
oracle重建em
项目中经常遇到需要重建em的问题,由于自己水平有限,不能直接分析oracle性能文件,只能依靠em,但有时默认没安装,怎么办呢,重建!env |grep SID 检查环境变量若sid不正确则修改之emca -repos recreate 重建一个Em资料库 当然如果之前没有也可以emca -repos create emca -config dbcontrol db 配置数据库原创 2012-02-28 15:32:03 · 1845 阅读 · 0 评论 -
SYS远程连接出错ORA-01031:Insufficient privileges
SYS远程连接出错ORA-01031:Insufficient privileges.现象:本地可以正常连接访问,在其它机器上也能通过normal方式正常访问使用,但是不能以sysdba身份连接访问,连接时报错ORA-01031:Insufficient privileges.1、检查系统参数:SQL> show parameter passwordNAME转载 2012-06-27 17:01:42 · 967 阅读 · 0 评论 -
创建range list和hash分区表
创建range分区表:CREATE TABLE t_range(object_id NUMBER(5),object_name VARCHAR2(50),create_date DATE,OBJECT_TYPE VARCHAR2(20))PARTITION BY RANGE(object_id)(PARTITION object_id_10000 VALUES LE原创 2012-07-17 14:39:15 · 2371 阅读 · 0 评论 -
oracle 交换表空间
设置文件输出路径:SQL> alter systemset db_create_file_dest='/home/oracle'; System altered SQL> showparameter db_create_file_dest; NAME TYPE VALUE---------原创 2012-07-17 14:40:10 · 2803 阅读 · 0 评论 -
range,list和Hash 分区的性能
这里我主要比较查询性能差异首先创建如题目1中的三张表并增加记录至100w多创建的分区内的记录尽量保持平衡也就是每个分区的记录数相近 不加索引下执行下面的查询SELECT *FROM t_rangeWHERE object_id=48928SELECT *FROM t_hashWHERE object_id=48928SELECT *FROM原创 2012-07-17 14:40:56 · 4901 阅读 · 0 评论 -
oracle 组合分区
CREATETABLE t_range_hash(object_id NUMBER(5),object_name VARCHAR2(50),create_date DATE,OBJECT_TYPE VARCHAR2(20))PARTITIONBYRANGE(object_id)subpartitionbyhash(OBJECT_TYPE)SUBPARTITIONS4原创 2012-07-17 14:41:38 · 6392 阅读 · 1 评论 -
Trace files
查询oracle dump文件位置:SQL> show parameter dump; NAME TYPE VALUE------------------------------------ ----------- ------------------------------background_cor原创 2012-07-19 10:27:22 · 1082 阅读 · 0 评论 -
System and session state
系统级的:Session级的event的视图(session级别2个、系统级别一个):SELECT *FROM v$session_event;SELECT *FROM v$session_wait;SELECT *FROM v$system_event;重要参数:statistics_level basic typical all原创 2012-07-19 10:36:00 · 718 阅读 · 0 评论 -
Statspack
用spcreate.sql进行安装先创建一个表空间:Create tablespace perfstat datafile ‘/var/oracle/oracle/oradata/traveldb/perfstat_01.dbf’ size 512M;执行plsql包:@?/rdbms/admin/spcreate.sql;输入密码、表空间、临时表空间即可。创建完成原创 2012-07-19 10:28:22 · 594 阅读 · 0 评论 -
表和索引在数据压缩前后空间占用情况的对比
创建压缩表create table t_compress as select * from dba_objects;创建非压缩表create table t_uncompress as select * from dba_objects;占用空间对比select segment_name,extent_id,bytes from user_extents where s原创 2012-08-08 10:39:48 · 1293 阅读 · 0 评论 -
数据压缩在海量数据环境下意义
海量数据环境下可以将不需要修改的数据所在的分区属性设置为压缩,然后通过move partition方式对分区的数据进行压缩,这样即可以提高查询效率又可以节省空间。 创建分区表:createtable t1 (idint,timedate)partitionbyrange(time) ( partition p1valueslessthan(to_date('2011-原创 2012-08-08 10:54:18 · 1288 阅读 · 0 评论 -
数据压缩对DML操作的影响
正常的insert的数据并不会发生压缩:创建了两个表 查看空间占用情况: 可以发现t2并没有被压缩,但是通过 insert /*+append */直接插入的方式就可以压缩了:可见t2被压缩了 Update操作会使压缩数据不再被压缩:原创 2012-08-08 10:52:53 · 1154 阅读 · 0 评论 -
数据压缩前后,对表进行查询时,CPU,扫描的数据块,执行时间的对比
创建两个大表 并对一个表进行压缩,可见一个112m的表被压缩成了33m原创 2012-08-08 10:43:08 · 898 阅读 · 0 评论 -
BitMap索引性能优于B-Tree
删除题1中创建的btree和bitmap索引在status字段上创建bitmap索引createbitmapINDEX status_bmxon t_btree(status);执行两次查询发现了执行了5次cr,扫描路径是bitmap索引 删除此索引Drop index status_bmx创建btree索引执行同样的sqlSELECTCOUNT(*原创 2012-07-25 13:46:50 · 2168 阅读 · 0 评论 -
全文索引的性能优势
继续沿用上一题的t_btree 表,删除此表上的所有索引并在object_name一列上建立btree索引CREATE INDEX object_name_btxon t_btree(object_name);创建新表CREATETABLE t_textASSELECT *FROM t_btree创建基于object_name的全文索引createindex原创 2012-07-25 13:47:28 · 797 阅读 · 0 评论 -
B-Tree索引性能优于BitMap索引
建立两张表:CREATETABLE t_btreeASSELECT *FROM dba_objects在t_btree上建立bitmap索引createbitmapINDEX object_id_bmxont_btree(object_id);执行两次查询SELECT * FROM t_btree WHERE object_id=9999;发现了执行了71次原创 2012-07-25 13:46:17 · 1803 阅读 · 0 评论 -
全文索引表的分区交换
主要过程如谭总书中的例子:创建空的分区表createtable t1(object_id int,object_name varchar2(60),created date) partition by range(created) ( partition p2009 values lessthan(to_date('2010-01-01','yyyy-mm-dd')), p原创 2012-07-25 13:48:02 · 1178 阅读 · 1 评论 -
oracle实例和监听器
一、静态注册静态注册指实例启动时读取listener.ora配置文件,将实例和服务注册到监听程序。无论何时启动一个数据库,默认都有两条信息注册到监听器中:实例和服务。SID_LIST_LISTENER = ( SID_LIST = (SID_DESC = (GLOBAL_DBNAME = Ora8) (SID_NAME = t转载 2012-06-27 17:02:52 · 4113 阅读 · 0 评论 -
Oracle 手工建库
今天运维给装了个虚拟机可是oracle启动一直报shared pool大小不足,这个下一篇会谈到解决办法,解决了这个问题后数据库启动不了,于是不得不手工建库:1. 建立需要的目录mkdir -p /oracle/product/10204/admin/bdumpmkdir -p /oracle/product/10204/admin/cdumpmkdir -p /oracle/pr原创 2012-06-27 16:37:53 · 1916 阅读 · 0 评论 -
Oracle备份(一)------设置归档模式
数据库环境:OS:Redhat as 4 DB:Oracle 10.2.0.4User:travel数据文件:select file#,status,enabled,name from v$datafile;控制文件:select * from v$controlfile;联机日志: 设置归档模式root 登录su –原创 2012-04-01 12:53:21 · 759 阅读 · 0 评论 -
Oracle备份(二)------数据库冷备
冷备份脚本:--connect databaseconnect sys/oracle;--shutdown databaseshutdown immediate;cd /var/oracle/oracle/oradata/traveldb/;--Copy Data file--Copy Control file--Copy Log filecp *.dbf /o原创 2012-04-01 12:55:17 · 730 阅读 · 0 评论 -
Oracle备份(三)------热备
--connect databaseconnect sys/oracle; --archivealter system archive log current;--此处可以多次归档alter system archive log current;--热备数据文件alter database begin backup;拷贝所有的datafile到备份目录cd原创 2012-04-01 12:59:23 · 847 阅读 · 0 评论 -
Oracle恢复(七)------基于时间的恢复
首先有备份其次知道自己想要恢复到的历史时间拷贝备份的所有数据文件回来,startup mount;启动到mount状态recover database until time'2012-04-10:16:43:01';//穿越到今天呵呵 因为10号发工资,所以喜欢穿越到10号Mediarecovery complete. 恢复ok,这个不要一个alter data原创 2012-04-10 16:34:08 · 563 阅读 · 0 评论 -
Oracle备份(四)------RMAN
rmanconnect target / 也可以rman target sys/oracle@test db 连接远程数据库记录rman执行的日志:rman target / log /home/oracle/rmanLog.txtshow all//显示所有rman参数CONFIGURE RETENTION POLICY 配置备份保留策略原创 2012-04-10 15:26:00 · 714 阅读 · 0 评论 -
Oracle恢复(一)------基本概念
实例故障恢复:当instance意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。实例恢复将数据库恢复到故障之前的事务一致状态。一般情况下是由oracle自己来完成实例恢复的,步骤如下:1、启动后根据联机重做日志进行前滚,使数据库恢复到故障发生的时候时 的状态。2、然后释放故障时 的资源,判断事务提交的状态,回原创 2012-04-10 15:33:50 · 605 阅读 · 0 评论 -
Oracle恢复(三)------归档模式下恢复数据文件
现象如上篇文章,就是数据库是归档状态,错误是这两个:ORA-01157:ORA-01110:先检查一下恢复视图:select* from v$recover_file;会发现需要恢复的数据文件信息假设是3号数据文件需要恢复,则alter database datafile 3 offline drop; 脱机损坏的数据文件打开数据库:alterdatabase open原创 2012-04-10 15:47:42 · 691 阅读 · 0 评论 -
Oracle恢复(五)------归档模式下整库恢复
这次比较惨,启动时报N个文件找不到的错误,呵呵,是我故意删了N个数据文件,只要有备份与归档存在,就可以实现数据库的完全恢复(不丢失数据);所以我不怕,当然你也可以狠一点,把系统文件也干掉select * from v$recover_file;不解释了拷贝所有数据文件的备份到原来的位置recover database;然后死等Media recovery原创 2012-04-10 16:09:58 · 546 阅读 · 0 评论 -
Oracle恢复(六)------RMAN整库恢复
再次强调,要想恢复,先有备份此处忽略N条启动报错select * from v$recover_file;此处忽略N条记录rman connect target / ;我一般习惯不用恢复目录数据库run{ allocate channel c1 type disk; restore database; recover database;sql原创 2012-04-10 16:16:03 · 637 阅读 · 0 评论 -
Oracle恢复(二)------非归档模式下的恢复
一般是启动时报一下的错误:ORA-01157 ORA-01110报警文件中显示不能打开数据文件,这种情况下只能采用冷备的全库恢复。也就是说只是restore,不需要进行recover。这种情况下的恢复,可以完全恢复到备份的点上,但是可能是丢失数据的,在备份之后与崩溃之前的数据将全部丢失。不管毁坏了多少数据文件或是联机日志或是控制文件,都可以通过这个办法恢复,因为这个恢复过程是Resto原创 2012-04-10 15:39:34 · 970 阅读 · 0 评论 -
Oracle恢复(四)------用RMAN恢复一个数据文件
当然,前提是先有这个数据文件的备份了启动数据库仍旧报数据文件找不到的错误先查恢复视图,发现又是可恶的3号文件坏了,不多说,马上alter database datafile 3 offline drop;rman脚本:run{allocate channel c1 type disk;restore datafile 3;recover datafile 3原创 2012-04-10 16:02:27 · 2402 阅读 · 0 评论 -
Oracle恢复(九)------恢复损坏非当前联机日志
1、恢复非当前的联机日志:启动数据库,遇到ORA-00312 or ORA-00313错误,如ORA-00313: open failed for members of loggroup 2 of thread 1从这里我们知道日志组2的数据文件损坏了 查看V$log视图 selectgroup#,sequence#,archived,status from v$log;原创 2012-04-10 16:49:38 · 635 阅读 · 0 评论 -
Oracle恢复(八)------rman基于scn的恢复
查找要恢复到的scn select max(ktuxescnw * power(2, 32) +ktuxescnb) scn from x$ktuxe; 这里是测试用 所以预先可以知道scn,如果是生成系统就得查询日志 ,想办法获得scn了,如查询数据库字典表(V$archived_log or v$log_history),或分析归档与联机日志(logmnr)等。假如要恢复到的scn是111原创 2012-04-10 16:43:39 · 1128 阅读 · 0 评论 -
Oracle ORA-22922 错误
测试环境是Oracle 10g 10.2.0.4 :select * from (select t.*, ROWNUM num from (select t.user_type, t.producttype_name, t.prodname,原创 2012-04-13 13:52:46 · 14785 阅读 · 3 评论 -
oracle的trace files
查询oracle dump文件位置:SQL> show parameter dump; NAME TYPE VALUE------------------------------------ -----------------------------------------background_core原创 2012-06-12 11:30:50 · 779 阅读 · 0 评论 -
statspack简单使用
用spcreate.sql进行安装先创建一个表空间:Create tablespace perfstat datafile ‘/var/oracle/oracle/oradata/traveldb/perfstat_01.dbf’ size 512M;执行plsql包:@?/rdbms/admin/spcreate.sql;输入密码、表空间、临时表空间即可。Stat原创 2012-06-12 11:34:45 · 660 阅读 · 0 评论 -
oracle重建em
项目中经常遇到需要重建em的问题,由于自己水平有限,不能直接分析oracle性能文件,只能依靠em,但有时默认没安装,怎么办呢,重建!env |grep SID 检查环境变量若sid不正确则修改之 emca -repos recreate 重建一个Em资料库 当然如果之前没有也可以emca -repos createemca -config dbcontrol db 配置数据库的d...2012-02-28 15:32:00 · 185 阅读 · 0 评论