通过OCP考试,等待证书
今天上午在尚观通过042,043,047三门考试,接下来就是等待证书了.现在OCP的考试越来越普遍,有一些工作过很多年的老DBA对这个认证其实抱着一种不屑的态度,毕竟证书不能代表能力,也不能取代经验.对于我,考这个证书主要有两个目的:1.鞭策自己学习 其实考试的范围挺广的,通过学习和试验题库中的场景,可以学到很多东西,有些内容以前仅仅是听说过,在日常的工作中也基本不会使用,但是出现在题库中,那么就需要去了解,或者去测试。在这个准备的过程中就可以学习到很多东西. 如果单凭是背题库,那就太不划算了.培训加考试下来得好几千上万元的钱,却仅
Oracle的另外一些文件
今天停止数据库之后,去$ORACLE_HOME目录下去修改pfile文件,然后看到一些怪异的文件名,而且占用的空间也不小,文件类如这种:-rw-rw---- 1 oracle dba 1544 May 15 04:40 hc_testdb.dat-rw-rw---- 1 oracle dba 24 May 15 04:40 lkTESTDB-rw-r----- 1 oracle dba 7405568 Jun 22 20:31 02lgt74g_1_1-rw-r----- 1 oracle dba 7405568 Jun 23 00:48 04lgtm7n_1_1-rw-r----- 1 oracle dba 1193746432 Jun 23 00:55 05lgtmek_1_1-rw-r----- 1 oracle dba 7356416 Jun 23 00:55 snapcf_testdb.f-rw-r----- 1 o
Oracle中SQL里面的Help命令
一直在寻找关于Oracle命令的一些帮助和提示,因为Oracle在sql命令中并没有提示。想想应该是sql太过于复杂,也太过于变化,使用一些公式的方式提供可能太过于麻烦,Oracle直接就提供了一本SQL Reference供你查询.不过也不是一点帮助信息也没有.你可以在sql下执行? index或者help index就会有一些帮助的信息.SQL> help indexEnter Help [topic] for help. @ COPY PAUSE SHUTDOWN @@ DEFINE PRINT SPOOL / DEL PROMPT
不同blocksize的表空间上全表扫描的差异实验
oracle9i之前,数据库的blocksize是固定的,一旦数据库创建之后就不可改变,也不能创建不同blocksize的表空间.9i之后,可以对非系统表空间设置不同db_block_size的值.那么blocksize不同会对SQL造成什么影响呢?我简单做了一个实验进行对比(这个实验还会再继续深入分析下).数据库版本10.2.0.3,系统默认的db_block_size为8K,创建一个新的表空间设置blocksize为16KSQL> alter system set db_16k_cache_size=4M scope=memory;系统已更改。SQL> create tablespace test16 datafile 'c:datafile_test16.dbf' size 100M blocksize 16k;表空
exp导出一个表中符合查询条件的数据
导出一个表中的部分数据,使用QUERY参数,如下导出select * from test where object_id>50000这个条件中的数据exp charsi/charsi@testdb tables=(TEST) query="'where object_id>50000'" file=aaa.dmp log=aaa.log其他参数含义:GRANTS:指定是否导出对象的授权信息,默认参数为Y,即默认导出INDEXES:指定是否导出表的索引,默认为YCONSTRAINTS:指定是否导出标的约束,默认为YTRIGGERS:指定是否导出与表相关的触发器,默认为YFILESIZE:如果生成的dump文件超过指定的,需要使用FILE参数指定多个文件BUFFER:用来指定执行导
oracle 10g isqlplus使用初体验
oracle 10g中新添加了isqlplus的方式,可以使用网页的方式查询sql等。查询起来显得比较方便一些。相比命令方式sqlplus,它会自动调整每列的分配值.启动方式:isqlplusctl start停止方式:isqlplusctl stopisqlplus默认使用的是5560端口,如果使用isqlplus,首先得确认网络中没有屏蔽该端口.我测试的时候是使用本机的虚拟机进行测试的。刚开始测试时,由于本机浏览器设置了代理,无论怎么都无法连接,后来把代理去掉就可以访问了。看来以后得少犯这种低级错误了.另外,使用本机访问虚拟机数据库的http://192.168.43.4:5560/isqlplus时,那些
修改数据库db_name的方法
如何修改数据库的db_name?下面提供一种方法供参考本例将db_name=testdb改名成db_name=testdb1,修改结束后,instance_name还不变,仍为testdb首先将数据库启动到mount状态SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> SQL> SQL> startup mount ORACLE instance started.Total System Global Area 289406976 bytesFixed Size 1219040 bytesVariable Size 109053472 bytesDatabase Buffers 176160768 bytesRedo Buffers
系统和数据库LANG不一致的问题
对于系统和数据库字符集设置不一致的问题,可能会出现多种问题.1.对数据imp/exp导出导入时,可能会有些字符出现报错,典型的报错如下(虽然对数据的影响应该不会造成影响): EXP-00091:Exporting questionable statistics.2.有些数据格式可能不能识别,遇到一个问题,如果系统shell设置的环境变量不是AL32UTF8,则有些数据格式的数据无法识别 主要是影响到date数据类型.如果系统shell环境变量为中文,数据库环境变量为字符类型,则会报错$ export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"$ sqlplus "/ as sysdba"
UNIX的架构及UNIX/Windows演进图
对于UNIX/Windows系统的演进历史还是需要了解的。The evolution of the UNIX operating systemThe evolution of the Windows family of operating systems对UNIX的架构也需要学习UNIX architecture以上内容来自http://technet.microsoft.com/en-us/library/bb496993.aspx[@more@]
这种外键(Foreign Key)方法能不能造成死锁
网上看了一篇文章(http://blog.csdn.net/youjianbo_han_87/archive/2010/03/17/5390993.aspx),关于使用外键造成死锁的分析.按照上面的方法做了一遍,却模拟不出来死锁,只能模拟出session blocking的情况.不知道所以然,将我做的过程贴出来.数据库版本:10.2.0.1SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProdPL/SQL Release 10.2.0.1.0 - ProductionCORE 10.2.0.1.0 ProductionTNS for Linux: Versi
Oracle数据库发展
(Oracle最早期的产品是Oracle5)--1979年:基于SQL的数据库 Oracle开发出第一个基于SQL标准的数据库管理系统,同时该产品也是第一个以SQL(Structured Query Language,结构化查询语言)语言为基础的关系型数据库管理系统.--1986年:Oracle5 Oracle5版具有分布式数据库处理能力,同时支持Client/Server结构,对数据进行集中存储与处理--1988年:Oracle6 Oracle6版支持过程化语言PL/SQL(Procedural Language)、带事务处理TPO(Transaction Processing Option)选件,使用SQL*Net进行客户端与服务器间的通信.--1992年:Oracle7 多线索服务器体系结构MT
数据库中的logfile
相关的表:v$log v$logfile v$log_history 添加redo log组命令:alter database add logfile group 4 '/home/oracle/testdb/logfile/redo05.log' size 50M; ------添加组的时候设定了logfile member的大小之后,再添加logfile member就会创建同样大小的文件.添加redo log member命令:alter database add logfile member '/home/oracle/testdb/logfile/redo05_1.log' to group 4;删除redo log member命令:alter database drop logfile member '/home/oracle/testdb/logfile/redo05_1.log';如果一个组中只剩下最后一个member的时候,是不能
Oracle 10g修改字符集的方法:
Oracle 10g修改字符集的方法:1.首先执行$ORACLE_HOME/rdbms/admin/csminst.sql,创建一些数据库对象,包括数据库用户2.备份Oracle数据库,最好全库备份;3.使用csscan命令检查字符集转换是否可行.csscan有四种扫描模式:全库扫描,按用户扫描,按表扫描,按列扫描.因为我们是改变全库的字符集,所以要用全库扫描.并且要求有DBA权限.4.运行csscan扫描数据库:csscan SYSTEM/testdb FULL=y TOCHAR=ZHS16GBK ARRAY=1024000 PROCESS=15.扫描结束后,会在当前目录下产生三个文件:scan.txt,scan.out,scan.err,我们更多的需要关注scan.err6.可能需要多运
查看执行计划的方法
主要有两种:第一种是set autotrace onset autotrace traceonly可以看到sql的执行计划,还可以看到sql的一些别的统计信息。第二种方法是explain plan for SQL语句,如explain plan for select * from dual;然后通过查询select * from table(dbms_xplan.display);查看执行计划[@more@]
DBMS_TRACE包学习
DBMS_TRACE 包可能主要是开发调试的时候用的比较多,主要是将trace信息记录到系统表里.开始使用前需要使用sys用户执行$ORACLE_HOME/rdbms/admin/tracetab.sql语句,该脚本创建plsql_trace_runs和plsql_trace_events两个表和一个sequence,详细可以参考脚本内容.通常使用的可能是dbms_trace.set_plsql_trace(trace_level);和dbms_trace.clear_plsql_trace两个procedure.trace_level可以参考dbms_trace package中的定义:trace_all_calls constant integer := 1; -- Trace calls/returnstrace_enabled_calls constant integer := 2;trace_all
表分析初体验
----创建表SQL> create table test as (select * from all_objects);Table created.SQL> insert into test (select * from all_objects);38167 rows created.SQL> commit;Commit complete.----创建索引SQL> create index ind_test on test (object_name);Index created.-------表还没有统计信息SQL> select table_name,last_analyzed from user_tables where table_name='TEST';TABLE_NAME LAST_ANALYZED------------------------------------------------------------ --------------TEST-------索引的统计信息是新创建的