ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 問題纪录

問題纪录

原创 Linux操作系统 作者:tolywang 时间:2006-02-22 00:00:00 0 删除 编辑

1. 读了 <> , 其中遇到很多问题, 记录在下面。 以后一一深入解决 。

OCI : Oracle Call Interface , oci——Oracle Call Interface是ORACLE提供的和应用程序连接的底层接口,在所有链接中效率最高。 连接Oracle数据库提供了两中方式OCI方式和thin方式,OCI方式是通过本地动态连接库和Oracle进行套接字通讯,速度和安全性比较好,thin方式是通过远程访问Oracle。一般情况,OIC方式用于服务器端开发的数据库连接方式而thin方式可用于applet等需要远程访问数据库的方式。


2. 什么是unicode, 为什么要使用它?

问:什么是Unicode答:Unicode给每个字符提供了一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。Unicode标准已经被这些工业界的领导们所采用,例如:Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys和其它许多公司。最新的标准都需要Unicode,例如XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML等等,并且,Unicode是实现ISO/IEC 10646的正规方式。许多操作系统,所有最新的浏览器和许多其他产品都支持它。Unicode标准的出现和支持它工具的存在,是近来全球软件技术最重要的发展趋势。

问:为什么使用Unicode答:基本上,计算机只是处理数字。它们指定一个数字,来储存字母或其他字符。在创造Unicode之前,有数百种指定这些数字的编码系统。没有一个编码可以包含足够的字符:例如,单单欧州共同体就需要好几种不同的编码来包括所有的语言。即使是单一种语言,例如英语,也没有哪一个编码可以适用于所有的字母,标点符号,和常用的技术符号。这些编码系统也会互相冲突。也就是说,两种编码可能使用相同的数字代表两个不同的字符,或使用不同的数字代表相同的字符。任何一台特定的计算机(特别是服务器)都需要支持许多不同的编码,但是,不论什么时候数据通过不同的编码或平台之间,那些数据总会有损坏的危险。

问:举个例子吧。答:比如,简体中文(GB)、繁体中文(BIG5)、日文中,“赵”都是一个字,但是编码不同。在不同的编码下,BIG5的赵是0xBBAF,而0xBBAFGB里面就被显示为“化”,这就是乱码。而Unicode采用统一的编码,“赵”只有一个,不必管他在哪种文字里。

问:Unicode的优点是什么?
答:举一个最明显的例子就是Windows 2000/XP以及微软Office2000及其后的产品。
因为这些软件都是Unicode内核,因此,无论何种文字,都可以在上面正常显示,而且是同屏显示。以前,简体中文的Word文件拿到英文版打开就会是乱码,简体中文的程序在Windows英文版上运行会出现乱码,而现在一切都解决了。

问:中国京剧戏考为什么使用Unicode答:因为有些剧本中的生僻字,只在扩展字库或繁体字库中才有,有的甚至没有。而Unicode不仅包含了所有常用字和大部分生僻字,而且因为其可扩展,在现在没有的情况下,将来也是可以扩充的。例如最新的Unicode 4.0标准,较3.0增加了很多生僻字。目前有70207个汉字。再有一点就是Unicode在将来会取代现有的GBKBIG5

问:我如何能够看到不是乱码的剧本?
答:如果您阅读PDF的格式,只需要有Adobe Reader即可。
如果您是在网站上直接阅读剧本,有时可能会出现乱码,请查看菜单(或右键单击剧本)中,选择编码,然后点Unicode (UTF-8) 即可。注意,有些字在早期的 Unicode 定义中还没有

3. 应当使用OCI的几种情况

1、数据库访问效率要求非常高,敏感度在100豪秒内
2
、需要足够的灵活
3
、应用需要使用XA接口

4OCI應用到RAC/OPS中,可以實現Failover .

4. Oracle Names

Oracle Names Server是Oracle客户端连接服务器的一种方式,翻译过来就是命名服务器。
在这种连接方式中,需要一个专门的服务器作为命名服务器,它是客户端连接服务器的中介。
与本地名的连接方式相比,这种连接方式相对于的好处是:有100个客户端需要连接到服务器,如果服务器的配置,如IP地址等发生变化时,不需要修改100个客户端的tnsnames.ora文件,只需要修改命名服务器的数据库配置就可以了。Oracle Names用Net8 Assistant配置,只要看看Net8 Assistant的帮助就可以了。   


5.
分布式数据库

通过database link将多个数据库当作一个数据库来访问 。

两阶段提交协议

分布式事务使用两阶段提交协议来使在不同进程中或者对不同数据库服务器执行的相关工作同步。

该协议保证所有进程成功完成工作或根本不执行工作。对数据的修改须共同提交或共同回滚。目的是为了确保事务中的每个参与者执行相同的操作(要么都提交,要么都回滚)。在事务的有效期中,事务中的任何参与者都可以单方面决定停止事务。

顾名思义,两阶段提交协议包含两个阶段:准备阶段和解决阶段。在每个事务中,一个进程充当协调者。协调者监视事务中的其它参与者的活动以确保结果一致。在事务的所有工作完成以后,应用程序通过调用两阶段提交协议尝试提交工作。

两阶段提交协议中存在以下两个阶段:

1. 准备阶段 在准备阶段中,协调者将向事务中的每个进程发送一则消息,要求每个进程准备提交。当某进程准备时,它保证可以提交事务并为自己的工作生成一条永久记录。在保证可以提交之后,它不能再单方面决定回滚事务。如果该进程不能准备(也就是说,如果它不能保证自己可以提交事务),那么它必须回滚事务。

2. 解决阶段 在解决阶段中,协调者将对回应计数。如果所有参与者都准备提交,则提交事务;否则回滚事务。无论哪种情况,协调员将会把结果通知所有参与者。如果结果为提交,参与者将确认它们已经提交。

5. Oracle异构服务(透明网关)

Oracle可以通过透明网关(Transparent Gateway) 这样的工具从oracle数据库中访问非Oracle数据库和服务,允许用户对非oracle数据库提交一个oracle SQL语句,而且自动将它们转换为非ORACLE源系统相应的SQL语句。

以下是透明网关配置的例子 http://www.zahui.com/html/8/15091.htm

6. Oracle的高级复制

http://www.eduz.cn/Article/eduindu/edutrain/ittrain/ORACLE/200507/2938.html

7. Oracle可传输表空间

8. Oracle8i 以上版本有高级队列(Advanced Queuing , AQ) , 异步传递消息

9. 数据库并行化 ------ 并行化程度

Oracle的并行通过共享存储实现,因此Oracle RAC可以动态添加或删除数据库实例,无需停机。而IBM的集群数据库不共享任何资源。如果需要添加节点,您必须重新划分数据,所以不得不停机。在灵活性上IBM不如Oracle;但是在充分利用主机资源,处理海量数据,消除IO瓶颈方面,IBM要更强。OracleOLTP上具有优势,而IBM在海量数据处理方面具有优势。

10. 查询中的驱动表

11. 物化视图 ( materialized view )

12. 分区表

13. 数据库创建后,数据库名称不能改, 但是实例名称可以更改

14. 控制文件中的maxdatafiles参数 , oracle7中,如果超过此数目,需要重建控制文件, 修改maxdatafiles, oracle8 及以后的版本中,当增加文件数比maxdatafiles 参数指定的要大, 控制文件会自动扩展 。

15. Maxloghistory 控制文件包含的历史日志文件的数目(归档文件数目)

16. 不同文件系统格式的操作系统数据块大小 (FAT32,NTFS,EXT2,EXT3 )

17. 数据文件包括: 数据文件头,数据文件正文

18. 某些操作可以抑制日志的生成:建立索引,删除数据(truncate) : nologging 参数

19. OLTP数据库可以使用较小的数据块(4K, 8K) , 数据仓库需要使用较大的Oracle数据块(8k16k)

20. MTS(多线程服务器)Oracle9i中称为共享服务器

21. data buffer cache 是如何工作的 ?

22. shared pool 中:SQL / PLSQL / 数据字典 / Data Library

23. 实例恢复过程: a. 写入redo 但是没有写入datafile 进行cache recovery , 这时是rollforward , b. 恢复后open database , 然后是回滚段回滚未提交的事务。

24. 服务器进程

服务器进程是为客户进程工作的,它的工作是读取和返回请求的数据,并代表客户接受和做出修改,例如:update 时,服务器进程会修改data buffer 中的数据块,并在log buffer 中生成, 存储必要的日志信息, 不过修改后的数据写入datafile DBWR, 而写好后的log buffer 写入online redo log LGWR完成 。

25. MTS(9i中称为共享服务器)在客户连接但无操作时不会像专有模式中一样仍然占用系统资源 。

26. Oracle9i 中可以完成专用服务器和共享服务器之间混合匹配,基于oralce net 配置文件 。

27. 默认情况下, Oracle Index 是升序还是降序 ?

28. 索引深度(B-Tree)是如何计算的,建立index时候, Oracle是如何设置的?

29. 对于索引的柱状图统计,可以通过Analyze Index命令来创建柱状图或者PL/SQL中的DBMS_STATS .

30. TKPROF工具的使用 ?

31. 什么叫做Oracle Audit ?

32. 理解伪角色Public

33. 执行计划的稳定性

34. OLTP数据库中经常更新的表的Index需要定期重建(达到什么程度才需要重建)CBO模式下表的定期分析及抽样分析。

35. 存储碎片与碎片重组 Block à Extent à Segment

(segment)的最大数据范围(extent)总数上限(maxextents), 但是实际使用过程中可以超越这个限制, 许多DBA认为segment中大量数据范围(Extents)是影响性能的一个直接因素 。

以下方法可以改善性能:

a . 表的重组(exp/imp) . b . Oracle9i 中,create table …. As select 在线操作

36. 发生以下事情可以使性能提高(表重组之后)

a. 每个数据块保存尽可能多的行 。

b. 作为重组的结果,表的高水位标记设置成它的最低点(即没有空闲空间)

c. 表中所有的Index被重新创建,意味着索引块也是尽可能满的,用于确定到达叶子节点或索引的I/O数量的索引深度也得到了最小化。

表的高水位标记是指块中所能拥有的数据的最大量 。

37. 实际上,Extents的扩展数量不是性能改善问题的关键。相反,性能改善是因为减少了数据块中空闲的空间,即在数据块中保存尽可能多的记录行 : pctfree, pctused .

38. 表空间的自由空间存储碎片问题 ( DMT , LMT ) .

39. 索引存储碎片:Oracle可以在线重建一个index, 而且基表的事务使用不会受到限制。

40. 备份与恢复 :

a. 实例恢复: cache recovery(roll forward) + roll back

b. 介质恢复: restore à recovery

41. Oracle 技术支持:TAR Technical Action Request , 需要Oracle的技术支持, 必须提供你的CSI(Customer Support Identification)

42. Oracle 性能: 动态性能视图: v$system_event , v$session_wait

43. 发现性能问题:可以先使用OEM查找,然后察看主机资源(CPU, 内存,I/O, 网络带宽) , 大部分DB性能问题根源在于磁盘I/O,

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84350/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13308356