随着数据库软件的专门化发展,数据库人员该何去何从?
今后几年,数据库真的向专门化发展了:1.传统的关系数据库,如oracle,sqlserver,mysql等。2.面向数据仓库的多维数据库。3.嵌入式数据库,sybase,oracle提供相关产品。4.内存数据库,如timesten,altibase,cache等。作为一个专业的数据库人员,究竟该何去何从?[@more@]
linux x86_64下安装完oracle,db console居然4分钟左右就自动终止了
linux x86_64下安装完oracle,db console居然4分钟左右就自动终止了,再启动,还是4分钟左右终止。查看日志Thread-4105169824 WARN upload: FxferSend: received fatal error in header from repository: http://piccbj-oa.picc:1158/em/upload/FATAL_ERROR::500|Invalid UTF8 encoding.Thread-4105169824 ERROR upload: number of fatal error exceeds the limit 3Thread-4105169824 ERROR upload: agent will shutdown nowThread-4105169824 ERROR : Signalled to Exit with status 55Thread-4133873328 ERROR main: EMAgent abnormal te
关于v$session中的taddr列(事务对象地址)
v$session有几列是关于地址值的,saddr:session对象地址paadr:对应的服务器进程的地址taddr:对应的事务对象,如果session上无事务,则为空。如果想查看v$transaction对应的sessionselect * from v$session where taddr=(select addr from v$transaction)就行了。[@more@]
ORACLE10.2.0.3 RAC for AIX,下alert日志报performing DML/DDL operation over object in bin.
ORACLE不允许直接手工drop回收站里的table,如drop table “BIN$EeuZs2QfQOG5owPmaYpe2Q==$0”,当执行这种操作时,前台就会报ORA-38301:无法对回收站中的对象执行DDL/DML,而alert日志会报performing DML/DDL operation over object in bin.10.1下是可以从user_tables里看到这些表的,10.2一般只有查DBA_RECYCLEBIN才能看到这些表。也怪了,他用的哪个版本的什么工具看到的这些10.2回收站里的BIN$表?[@more@]
picc某rac数据库无法连接,数据库处于打开状态。
当时看错误提示,归档目标满,他们的数据量和事务量都非常小,数据库不到20个G,正常情况不可能撑满归档目标的,查看v$loghist,前一天居然切了500次,肯定某些地方出问题了。先删除这些归档,发现几分钟内又出现几个归档,事情不妙。经查发现update 大表 set col = 值的操作,居然多个session在执行,这张大表都快上百万记录了,居然漏了where条件,晕倒。后经确认,就是头天下午开发人员改过该部分代码,经恢复应用代码后,系统恢复正常。都快无语,只想说一句“阁下的开发水平简直深不可测"。[@more@]
imp导致撤销段满
PICC某部门打电话说imp时报回滚段不足错误,搞不定。其实只要加commit=y参数,注意buffer开大点就行了。注:加commit=y参数就是要到达buffer数目时提交,但大对象和long的有一个问题就是如果该参数为Y的话,一行一提交,够狠的。[@more@]
关于数据库文件最大数
再复习复习这个吧,记忆力没那么差。关于create db中的maxdatafiles和db_files参数,文件数>maxdatafiles,将会自动扩展,但必须小于db_files参数,db_files是静态参数,需要重启。[@more@]
关于collecting状态的分布式悬挂事务
某企业集团BI数据库select * from dba_2pc_pending查出状态为collecting的悬挂事务,无法通过commit force或rollback force提交(仅限prepared事务),只好通过DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY'LOCAL_TRAN_ID');[@more@]
某电信公司--又是一个老问题
1.问题描述: shutdown immediate无法停掉数据库,用shutdown abort不会有问题。 2.问题分析:查看旧的alert日志,发现在等待若干session退出,包括job,及服务器端的连接程序。 select * from v$session_wait,发现服务器端的连接会话一直在跑,且语句运用到了并行,和直接加载操作。 insert/*+append*/ into tbl select/*+parallel(4)*/ * from djdfjdjfj; 3.问题解决:等待任务完成,再shutdown immediate,OK。这种事,最好找开发人员。[@more@]
oracle92在redhat3,4下的安装前必备步骤
for redhat as41.runInstaller之前必须先打4198954(即compat-libcwait-2.1-1.i386.rpm,compat-oracle-rhel4-1.0-5.i386.rpm)补丁。2.安装前环境变量设置*必须设置ORACLE_BASE环境变量,安装开始时提示权限不足,无法写入。*必须设置LD_ASSUME_KERNEL=2.4.19,否则dbca,netmgr等工具会报错,无法使用。for redhat as31.runInstaller之前必须先打3006854补丁。2.安装前环境变量设置(注意让.bash_profile生效)*必须设置ORACLE_BASE环境变量,安装开始时提示权限不足,无法写入。*必须设置LD_ASSUME_KERNEL=2.4.1,[@more@]
让补丁的.zip格式害苦了
aix5305下,无.zip解压缩程序,只好把10203 1.5G的文件在本地解压后传到服务器上,太慢了。回来看资料才发现oracle bin下本来就有unzip工具,娘的,真是太土了!今天一天又过去了。[@more@]
rac中的密码文件
spfile是用initSID.ora指定的spfile=.而密码文件只能用link.以下是相关资料对于基于裸设备的RAC环境,也可以在RAC环境建立的过程中,通过MAPFILE指定用户的密码文件到裸设备上。这样,每个$ORACLE_HOME/dbs目录下的密码文件实际上就是连接,指向裸设备上的密码文件:bash-3.00$ cd $ORACLE_HOME/dbsbash-3.00$ ls -l orapwtradedb1lrwxrwxrwx 1 oracle oinstall 35 Apr 18 15:25 orapwtradedb1 -> /dev/vx/rdsk/datadg/tradedb_pwdfile[@more@]
又见enqueue(TM SRX)
时间:2007-8-24 凌晨2:30地点:天津某地现象:客户端某操作共20多分钟,enqueue占据10多分钟。分析:(1)blocker session均为insert某表的单一操作,具有多个TM类型的锁。(2)3个session处于enqueue wait状态,等待类型为tm类型的srx,rx模式,而不是常见的tx x模式。(3)该现象不是普通的行锁等待,与外键未建立索引现象十分类似,查看blocker当前的insert表,发现存在外键,且未建立索引,建之,再运行客户端操作,发现enqueue session变为2个。(4)把blocker session当前sql涉及到的表外键建立索引,enqueue消失。至此,问题解决。[
networker备份错误:Server is disabled: Install base enabler (0:5:0)
20070810某客户现场,查看备份情况时,发现7月20日备份已经停了,用的是networker备份产品,手工运行rman备份脚本,RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03009: failure of backup command on ch00 channel at 08/10/2007 16:34:29ORA-19506: failed to create sequential file, name="/full_PICC_akip21gk_1_1", parms="&quo
关于移动临时表空间文件位置的问题
临时表空间在9i,10G下都是不能用alter database rename file 'x' to 'y'来移动的,因为控制文件中没有临时文件的记录,只有删除这个临时表空间,然后再新建一个,另外10.2版本中,如果临时表空间的临时文件被删除,open时会重建一个。[@more@]
sql server透明网关dblink在alert里报recover登录失败
以前也碰到过这种情况,现在警告日志里报了多个,看来把这些2pc悬挂事务强制提交就可以搞定了。ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:[Transparent gateway for MSSQL][Microsoft][ODBC SQL Server Driver][SQL Server]用户 'RECOVER' 登录失败。 (SQL State: 00000; SQL Code: 18456)ORA-02063: ??? 2 lines (?? STAG@ODS_TAR_PTBI_ODS_RES_CPTS_GL)以下是网上的文档,留作参考早晨到办公室听同事说表被锁了,一试,发现表中某字段为1111111的行都被锁了,SELECT都不行。报错误ORA-01591,打开TOAD的Knowledge eXpert,描
关于tc类型的enqueue等待
以下内容摘自logzgh blog今天碰到一个tc 类型的enqueue锁。以前没见过,后来上metalink一查发现是tablespace checkpoint的意思。顺便看到以下新增加的enqueue类型,收藏一下。AF : "This enqueue is used to serialize access to an advisor task"AS : "Synchronizes new service activation"CT :"A general class of locks used by change tracking for various purposes"DP :"Synchronizes access to LDAP parameters"FU :"This enqueue is used to serialize the capture of the DB Feat
ORA-01102 cannot mount database in EXCLUSIVE mode
接到一客户电话,ORA-01102 cannot mount database in EXCLUSIVE mode Cause: Some other instance has the database mounted exclusive or shared. Action: Shut down the other instance or mount in a compatible mode. 让其查看后台进程是否存在,发现只有DBWR,LGWR进程还在,kill -9也删不掉,只有重启机器。过会儿,对方又说shutdown immediate基本上hang住了,晕头,电话支持,也看不到系统。幸亏一位老大见多识多,让其查看alert.log最后一
oracle中的文件操作
oracle中可以用utl_file对文件进行操作,但目录方面:1.可以用directory对象,这是较理想的方法。2.utl_file_dir参数,还是忘掉吧。开发的东西越来越淡忘了。廉颇老已,尚能饭否[@more@]
RAC系统当中,job在哪个节点运行?
DBMS_JOB.SUBMIT (job OUT BINARY_INTEGER,what IN VARCHAR2,next_date IN DATE DEFAULT sysdate,interval IN VARCHAR2 DEFAULT 'null',no_parse IN BOOLEAN DEFAULT FALSE,instance IN BINARY_INTEGER DEFAULT any_instance,force IN BOOLEAN DEFAULT FALSE);instance参数指定,如果是0(默认),则可能在任何节点执行。如果为实例号,则只能在某一个实例执行。[@more@]