DBMS_SUPPORT包
最近给用户做数据库升级,涉及到DBMS_SUPPORT包,关于这个包的安装及使用介绍,请参考:http://www.eygle.com/faq/DBMS_SUPPORT.htm[@more@]
关于隐含参数_b_tree_bitmap_plans
最近碰到这样一个SQL:SELECT DISTINCT T_GOODS_DECL.DECL_NO,T_GOODS_DECL.DECL_REG_NO,T_GOODS_DECL.DECL_PERSON_CODE,T_GOODS_DECL.DECL_DATE,T_GOODS_DECL.CONSIGNOR_CNAME,T_GOODS_DECL.CONSIGNEE_CNAME, T_GOODS_DECL.PROCESS_STATUS,T_GOODS_DECL.DECL_GET_NO,T_GOODS_DECL.DEST_CODE,T_GOODS_DECL.DECL_TYPE_CODE,T_GOODS_DECL.INSP_ORG_CODE,T_GOODS_DECL.INSP_ORG_CODE||T_GOODS_DECL.INSP_DEPT_1,T_GOODS_DECL.DEST_ORG_CODE FROM T_GOODS_DECL,T_DECL_GOODS WHERE ( T_GOODS_DECL.DECL_NO = T_DECL_GOODS.DECL_NO ) AND t_goo
索引以NOLOGGING方式重建对备份恢复的影响
如果数据库为归档模式,你先对数据库做了冷备,后来又以NOLOGGING的模式对索引进行了重建,有一天你的数据库CRASH了,必须进行恢复,那么会发生什么事情呢?最近有个客户就发生了这样的事情。当数据库RECOVER,然后OPEN,应用不能使用,原因是走索引读取某个表的数据时因索引在最近一次数据库冷备后以NOLOGGING方式被重建过而无法获取表的数据。进一步检查还发现存放这些以NOLOGGING方式重建过的索引的数据文件出现大范围的坏块。[@more@]
今天遇到一个VERITAS NBU的BUG
今天客户要求对9月27日到28日的归档日志用LOGMINER进行分析,由于日志被VERITAS 的NBU备份走了,于是用RMAN还原那两天的归档日志,但是还原时出错:[@more@]RMAN> run {2> allocate channel c1 type 'sbt_tape' connect 'sys/96315@jxdc1';3> allocate channel c2 type 'sbt_tape' connect 'sys/96315@jxdc2';4> restore archivelog from sequence 2133 thread 1 until sequence 2141 thread 1;5> restore archivelog from sequence 1599 thread 2 until sequence 1606 thread 2;6> release channel c1;7> rel
rman会话中设置nls_date_format和nls_lang
run { ...... sql 'alter session set NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"'; sql 'alter session set NLS_LANGUAGE="AMERICAN"'; ...... } [@more@]
8i中RMAN的几个问题:
在8I中使用RMAN,发现很多与9I不同的地方,这里将前段时间遇到的问题总结一下:1、8I中没有configure,show等命令2、restore等命令不能单独运行,必须在{}中运行3、9I中我们可以rman target / catalog ...,然后set dbid=...但是8I中不可以这样,必须rman catalog ...然后set dbid=...,最后rman target /4、8I中用RMAN做恢复必须设置NLS_DATE_FORMAT和NLS_LANG,9I中则未必,除非是做基于UNTIL TIME的恢复[@more@]
10G中连接数据库可以不需要设置tnsnames.ora
具体方法是:SQL> conn username/passwd@hostname/servicename比如:SQL> conn system/passwd@192.168.0.222/mydb[@more@]
DG中用STANDBY的数据文件恢复PRIMARY对应数据文件的方法中要注意的问题
DG中如果PRIMARY的某个数据文件丢失,我们可以通过STANDBY的相应数据文件进行恢复,但是有一点值得注意:当STANDBY一直处于恢复状态,PRIMARY 的某个数据文件丢失,此时STANDBY的数据文件的SCN#可能大于PRIMARY的SCN#,那么直接将STANDBY的数据文件拷贝过来是不能RECOVER的,此时需要手工以NORESETLOGS方式重建PRIMARY的控制文件:CREATE CONTROLFILE REUSE DATABASE "PRIMARY" NORESETLOGS FORCE LOGGING ARCHIVELOG ......[@more@]
10g的RMAN全备和9I的不同
10g的RMAN全备是先备份数据文件,然后备份控制文件,9I则相反. 这也是为什么9I中从全备中还原控制文件后,控制文件中没有备份信息的原因. 另外10G中还可以把备份集catalog到控制文件中.9I就不可以[@more@]
乱码问题
前一段时间到客户那里去导入数据,结果很多存储过程的汉字都变成乱码,同事说是NLS_LANG环境变量没有正确设置所导致。修改该环境变量值,重新导入,用户数据库的乱码问题得到解决。结论:如果从表里面查出的数据是乱码,那么应是字符集问题;如果是象上面这种情况,那么应是NLS_LANG环境变量没有正确设置所导致。[@more@]
crs常用管理命令
常用的crs命令如下:[@more@]$ORA_CRS_HOME/bin/crs_stat –t 此命令主要用来检查crs资源状态例如[oracle@rac2 css]$ $ORA_CRS_HOME/bin/crs_stat -tName Type Target State Host ------------------------------------------------------------ora....CL1.srv application ONLINE ONLINE rac1 ora....CL2.srv application ONLINE ONLINE rac2 ora....TEST.cs application ONLINE ONLINE rac1 ora....L1.inst application ONLINE ONLINE rac
第一次安装RAC
最近几天忙于RAC安装,其间经历失败无数,究其原因是对VMWARE的使用不熟悉。将WORKSTATION换成SERVER版后,顺利完成安装。安装完成后还有个小问题没有解决,那就是重新启动虚拟机后,用命令crs_stat -t查看发现很多资源的状态是unknown,虽然依次手工启动LISTENER/ASM INSTANCES/DATABASE INSTANCES,RAC仍然可以使用,但是不知道会不会有其它问题。从网上找到一篇文章,出现的问题和我完全相同,作者说是时间不同步造成,经设置时间同步后,问题得到解决。然而我设置时间同步后问题仍然没有解决,也不知道是不是我时间同步设置得有问题。
OCR和VOTING DISK的MIRROR DISK的添加和删除
oracle10gR2开始支持OCR和vd的冗余,下面是进行MIRROR DISK添加和删除的方法[@more@]一、ocr的添加。 这里只举例使用raw device的情况(1)停止crs#crsctl stop crs# rsh lxvcs-8 /OraHome/crs/bin/crsctl stop crs(2)创建mirror ocr设备,vxassist -g ocrdg make ocrvol1 200M(3)使用ocrconfig倒出ocr数据# ocrconfig -export /oradata/ocr.data(4)修改文件,添加第二行#cat /etc/oracle/ocr.loc ocrconfig_loc=/dev/vx/rdsk/ocrdg/ocrvolocrmirrorconfig_loc=/dev/vx/rdsk/ocrdg/ocrvol1local_only=FALSE(5)使用ocrconfig向设备中导入数据
WARNING: inbound connection timed out (ORA-3136)
某Oracle10gR2数据库警告日志文件中出现大量警告:WARNING: inbound connection timed out (ORA-3136)网上找了一下ORA-3136的资料,特此记录如下:[@more@]解决方案:1.set INBOUND_CONNECT_TIMEOUT =0 in listener.ora2. set SQLNET.INBOUND_CONNECT_TIMEOUT = 0 in sqlnet.ora of server.3. stop and start both listener and database.4. Now try to connect to DB and observe the behaviour关于INBOUND_CONNECT_TIMEOUT:SQLNET.INBOUND_CONNECT_TIMEOUTPurposeUse the SQLNET.INBOUND_CONNECT_TIMEOUT parameter to specify the time
又遇10G BUG
今天接一用户电话,说数据库突然DOWN了,叫我看看......[@more@]经查警告日志中有下面的错误信息:Mon Jul 16 17:59:46 2007Errors in file /adosprod/dump/bdump/adosprod_mman_381670.trc:ORA-00600: internal error code, arguments: [kmgs_pre_process_request_6], [6], [453], [64], [3], [0x700000208C55290], [], []Mon Jul 16 17:59:47 2007Errors in file /adosprod/dump/bdump/adosprod_mman_381670.trc:ORA-00600: internal error code, arguments: [kmgs_pre_process_request_6], [6], [453], [64], [3], [0x700000208C55290]
执行SQL语句遇到3113错误
最近在一家客户那里做数据库健康检查,听用户说有条SQL语句执行时总是报3113错误,经METALINK诊断,确认是BUG 2475995[@more@]语句为:select case a.pk_corp when '1014' then '010501'when '1100' then '292101'when '1002' then '011401' end as unit_code,b.code,a.stocks_num,a.stocks_sum fromhtnc.Nc_sim_secstockbalance a,htnc.nc_sim_securities b,(select pk_corp,pk_securities,max(trade_date) as trade_datefrom htnc.Nc_sim_secstockbalancewhere pk_corp in ('1014','1100','1002')and state=0group by pk_corp,pk_securi
最近遇到的RAC的一个实例无法连接的问题
最近接到一个客户的电话,说RAC的一个实例down了,关也关不掉,起也起不来。SQL> shutdown immediate ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist IBM AIX RISC System/6000 Error: 2: No such file or directorySQL> startup ORACLE instance started. Total System Global Area 2451540256 bytes Fixed Size 743712 bytes Variable Size 1375731712 bytes Database Buffers 1073741824 bytes Redo Buffers 1323008 bytes 然后不动了。[@more@]于是叫用户把alert.log文件发过来,发现遇到了OR
alter database datafile .... offline drop的问题
10G 之前:If the database is in NOARCHIVELOG mode, you must specify the DROP clause to take a datafile offline. However, the DROP clause does not remove the datafile from the database. To do that, you must drop the tablespace in which the datafile resides. Until you do so, the datafile remains in the data dictionary with the status RECOVER or OFFLINE. If the database is in ARCHIVELOG mode, Oracle ignores the DROP keyword. 10G 之后:ALTER TABLESPACE ... DROP DATAFILE ...;[@more@]
一次给用户配置RAC的LOAD BALANCE的经历。
配置RAC的LOAD BALANCE其实是一件很简单的工作,然而本来信心满满给用户配置,却引起用户数据库不能登陆的错误,事情经过到底是怎样的呢?[@more@]一、配置过程:1、先配置两个节点的tnsnames.ora文件,包含下面的内容:failover =(DESCRIPTION =(enable=broken)(LOAD_BALANCE = yes)(ADDRESS = (PROTOCOL = TCP)(HOST = jxgs550a)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = jxgs550b)(PORT = 1521))(CONNECT_DATA =(SERVICE_NAME = jxdc.jxgs.gov)(failover_mode=(type=select)(method=basic))))LISTENER_RACa =(DESCRIPTION =(A
一次数据库不能归档问题的处理
数据库不能归档,很多的时候是因为磁盘空间不够或者在线日志文件损坏导致。然而4月份的时候,我却遇到一个非常奇怪的归档不成功的问题:[@more@]1、用户数据库不能登陆,查看警告日志,发现下面的错误:ORA-19510: failed to set size of 102395 blocks for file "/oradata/gpsdb/archive/1_9410.dbf" (blocksize=1024)ORA-27037: unable to obtain file statusHP-UX Error: 2: No such file or directoryAdditional information: 5ORA-16038: log 1 sequence# 9409 cannot be archivedORA-19510: failed to set size of blocks