给大表增加列的问题
不带default值会很快,仅修改数据字典,对修改之前的每一个ROW,不会有任何改变,对修改之后的每个ROW,会有新列的信息。[@more@]
这个月是怎么了?
感冒+肠炎--->感冒(发烧,头痛)--->感冒(头痛)妈的,到底是怎么回事?突然想大吼一声:要么赶快好起来,要么,就让暴风雨来得更猛烈些吧?[@more@]
IO 速度慢导致全表扫描慢的问题
前几天有个客户说同样一个全表扫描的语句在测试库上运行的速度要大大快于在生产库上的速度,并向我实际演示了一把。当时我也有点蒙,表的大小基本一样,执行计划确实是相同的,为什么会这样?用户说生产库的硬件条件要远远好于测试库......[@more@]经同事提醒,告知客户做IO速度的测试如下:分别在两主机上做下面的测试:$ time dd if=/dev/zero of=bigfile bs=512k count=1000测试库上返回的是:real 0m2.957suser 0m0.004ssys 0m1.960s生产库上返回的是:real 0m10.23suser 0m0.01ssys 0m1.83s显然生产库的IO速度比测试库上要慢得多。呵
这些数据库块可以被重用吗?
前几天看到同事关于删除某些大表数据的方案,看后觉得有些疑问...... [@more@]同事的方案是这样的:首先将要删除的表的数据的rowid记录在某个临时表中,然后根据该临时表的rowid对相关表进行delete,采用批量delete,然后批量提交的方式。该方案对普通大表进行数据删除不失为一个好办法,但是他将要处理的表是分区表,这些分区表是以时间(YYYYMM)进行分区的,而删除的数据也是以时间作为标准的,那么新的数据能够使用这些已经被删除数据的数据块吗?不要忘了,这些数据块是属于那些不需要的分区对应的SEGMENT的。说明:不使用DROP和TRUN
Sskgxp_ip: Primary Interface Down In Alert Log
Note:332517.1[@more@]Applies to: Oracle Server - Enterprise Edition - Version: 9.2.0.4.0This problem can occur on any platform.SymptomsMessage in alert file:SSKGXP_IP: Primary interface downoperation ioctllocation sskgxphypr3error Error 0 CauseThe message is trying to indicate that it was unable to send it's inter-instance communication over the private interconnect.The reason this is not necessarily an error, is because in the absence of the availability of the specified interconnect, inter-ins
监听状态正常,但是数据库不能连接,提示没有监听....
用户反映监听状态正常,但数据库不能连接,提示没有监听,tnsnames.ora配置没有问题。检查listener.log,发现大量ORA-12502错误,推断是网络上有大量扫描监听端口的包导致监听进程无法有效处理用户的连接,因此出现没有监听的错误。后得到用户证实,去掉干扰源后正常。[@more@]
一次对连接过程进行跟踪处理连接故障问题的案例
现象:可以ping通目标机器,tnsping显示配置没有问题,但是无法建立连接,错误是:ora-12535: operation timed out[@more@]决定配置客户端sqlnet.ora,增加下面的参数以对连接情况进行跟踪:LOG_FILE_CLIENT = sjapp.txtTRACE_DIRECTORY_CLIENT = /tmpTRACE_LEVEL_CLIENT = 16分析跟踪文件:1、从跟踪文件发现客户端一开始通过1521端口建立了连接:[06-MAR-2008 12:20:23:586] niotns: Calling address: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.160.198)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NA
10G RMAN恢复新特性
recover database until scn ... check logical, delete archivelog maxsize 3G;这里maxsize 3G是保证归档还原出来后最大使用空间为3G。如何保证?就是边还原边恢复,然后把已经用于恢复的归档日志删除。[@more@]
这要命的肠炎,真的会要了我的命吗?
呵呵,也许说这话显得太脆弱了一些,可是,难道不是吗?生命说不定什么时候就消失了的活着,本就是痛苦的事情;可真的要是到了要死去的时刻是不是也很不甘呵[@more@]
2008年关键词
----英语[@more@]
10G BUG真多
前段时间给某客户安装数据库10.2.0.3,OS是AIX 5L,数据库使用裸设备,结果DBCA创建数据库的时候就遇到错误:[@more@]failed to retrieve size of raw device "/dev/rdb_zb_spfile",exec():0509-036 cannot load program/oracle/product/ora10g/bin/rawutl because of the following errors:0509-150 Dependent module /oracle/product/ora10g/lib32/libttsh10.a(shr_ttsh10.o)could not be loaded.0509-103 The module has an invalid magic number."经证实是ORACLE BUG(Bug No. 5949863)解决方法是将/oracle/soft/Disk
可以备份就一定能恢复吗?
前面曾提到RMAN在WINDOWS上可以将备份集放到网络上的一个共享硬盘上,如下面的语句:backupformat 'seccjlm12rman_backup_setarch_%s_%p_%t'archivelog all delete input;实际上备份的时候没有问题不说明恢复的时候也没有问题,最近就遇到这样的事情,到客户现场进行数据库恢复的时候就报不能找到备份集的错误,最后还是用dbms_backup_restore包恢复了事。[@more@]
dbms_stats包的几个用法举例
记录常用的几个,备查[@more@]SQL> exec dbms_stats.create_stat_table('PVG_WH1_HL','temp_stat');PL/SQL procedure successfully completed.SQL> exec dbms_stats.export_table_stats(ownname=>'PVG_WH1_HL',tabname=>'LAGI',STATTAB=>'TEMP_STAT',CASCADE=>TRUE);PL/SQL procedure successfully completed.SQL> exec dbms_stats.import_table_stats(ownname=>'PVG_WH1_HL',tabname=>'LAGI',STATTAB=>'TEMP_STAT',CASCADE=>TRUE);PL/SQL procedure successfully completed.SQL> exec dbms_stats.LO
10G新特性笔记之FLASHBACK
10G支持下列FLASHBACKflashback databaseflashback dropflashback versions queryflashback transaction queryflashback table需要注意的是:后面三种还是基于UNDO RETENTION的[@more@]一、FLASHBACK DATABASEflashback database作用上相当于不完全恢复,它通过flashback database logs实现实现机制:当flashback database被起用,后台进程RVWR就被启动,SGA中就会分配flashback buffer,RVWR会把数据从flashback buffer中以循环重用的方式写入到flashback log中。flashback log不被归档。RVWR进程将数据块的前镜像写入到flashback log,当
10G新特性笔记之备份恢复新特性
10G在备份与恢复方面的新特性主要在于flash recovery area、快速增量备份、RMAN命令简化、备份集压缩等[@more@]1、flash recovery area用于存放数据库创建后的控制文件,控制文件的自动备份、归档日志、flashback日志、datafile copy以及RMAN备份文件。可以被多个数据库所共享2、如何定义flash recovery area涉及两个参数:DB_RECOVERY_FILE_DEST_SIZE和DB_RECOVERY_FILE_DEST3、ORACLE如何管理flash recovery area当oracle往flash recovery area中写入一个文件的时候,如果发现空间不够,它会删除旧文件列表中的文件并更新旧文件列表,否则
曾经遇到的一次数据不一致的问题
前段时间遇到过一个奇怪的问题,在PUB上曾提过这个问题,经ORACLE服务中心诊断后,被证实是索引的问题:[@more@]问题描述:将数据库A的表导入到库B中,出现下面的错误:IMP-00017: following statement failed with ORACLE error 1452:"CREATE UNIQUE INDEX "PRIMARY_ULD" ON "UINV_ULD_INVENTORY" ("UINV_ULD_TYPE" "", "UINV_ULD_SERIAL" , "UINV_ULD_OWNER" ) PCTFREE 10 INITRANS 24 MAXTRANS 2""55 STORAGE(INITIAL 131072 FREELISTS 24 FREELIST GROUPS
PGA的组成、分配和监控
最近遇到与PGA分配相关的一些问题,查了下资料,这里对看过的东西做个总结:本文只讨论专用服务器连接的模式。[@more@]一、组成PGA分成固定区和可变区,可变区也称为PGA堆。PGA堆又分为UGA、CGA等。UGA分成固定区和可变区,可变区也称为UGA堆。UGA堆包含私有SQL区、SESSION信息区等私有SQL区包含永久内存区和运行时区。永久内存区:这里存放了相同SQL语句多次执行时都需要的一些游标信息,比如绑定变量信息、数据类型转换信息等。这部分内存只有在游标被关闭时才会被释放。运行时区:这里存放了当SQL语句运行时所使用的一些信息,SORT、HA
LINUX下裸设备的操作
1、linux如何绑定裸设备?两种方式:1)命令绑定raw /dev/raw/raw[n] /dev/xxx其中n的范围是0-8191。raw目录不存在可以创建。执行这个命令,就会在/dev/raw下生成一个对应的raw[n]文件用命令方式绑定裸设备在系统重启后会失效。2)修改文件修改/etc/sysconfig/rawdevices文件如下,以开机时自动加载裸设备,如:/dev/raw/raw1 /dev/sdb1这种方式是通过启动服务的方式来绑定裸设备。也可以把这个命令写在/etc/rc.local上,使每次启动都执行这些命令。2、如何知道当前绑定了什么裸设备?raw -qa命令列出当前绑定的所有裸设备。3、如何知道某
10G新特性笔记之数据泵技术
与EXP/IMP是客户端应用程序不同,数据泵是服务器端应用程序[@more@]1、体系结构Direct Path API (DPAPI):10G因为DPAPI的使用,减少了数据转换和分析External Table:数据泵使用oracle datapump访问驱动处理External Table数据DBMS_DATAPUMP包用于以DPAPI的方式处理数据导入导出expdp/impdp用来调用DBMS_DATAPUMPDBMS_METADATA用于处理METALDATA数据的导入导出2、机制expdp可以将数据导出到一个文件也可以通过DBLINK把数据导出到一个数据库中,impdp则相反数据泵的核心是master table (MT),任何与数据泵作业相关的JOB都是由MT管理的。当发
10G新特性笔记之跨平台传输表空间
10g开始支持跨平台传输表空间:[@more@]前提:1、源和目的平台都支持2、源和目的数据库COMPATIBLE值都在10.0.0或以上3、数据文件头是平台敏感的(数据文件都曾经在COMPATIBLE为10.0.0或以上的数据库中以read/write方式打开过)实施:1、将tablespace置为readonly2、expdp3、转换成和目标库相同的endian格式(RMAN)通过语句SELECT tp.endian_formatFROM v$transportable_platform tp,v$database dWHERE tp.platform_name = d.platform_name;查询endian格式源库上以语句RMAN> CONVERT TABLESPACE 'FINANCE,HR'TO PLATFORM = 'AIX-Based