Posts Tagged oracle
Ubuntu下安装oracle11G up2
oracle的11G总算到了up2,这次的升级个人感觉最大的改善就是将clustter包成了标准包的一部分,看起来今后oracle数据库要越发的使用更多的机器了。目前官方只提供了Solaris和Linux的安装包,Win以及其他操作系统看起来还是要等。
oracle官方建议的linux仅限于Redhat, Suse, Asianux以及oracle自家的linux。但作为测试的一部分,我选择了ubuntu的新版本910 AMD64 server作为平台。不过理论上使用ubuntu Desktop或者Xubuntu更省力一点。系统内存为8G,根据建议(如下),设置了8G的swap。
| Between 0 MB and 256 MB | 3 times the size of RAM |
| Between 256 MB and 512 MB | 2 times the size of RAM |
| Between 512 MB and 2 GB | 1.5 times the size of RAM |
| Between 2 GB and 16 GB | Equal to the size of RAM |
| More than 16 GB | 16 GB |
配置Ubuntu的php支持OCI8
PHP的OCI模块支持Oracle总是比较让人头痛。这趟弄个ubuntu的安装文档。
通过ubuntu-server安装盘安装LAMP。当然,正常情况下,建议安装好openssh服务器,免得麻烦。
虽然ubuntu的server支持root直接登录,既然是ubutu,还是遵循它的sudo吧。
安装结束后,启动server。
首先,经典的更新
#sudo apt-get update; sudo apt-get upgrade
搭建oracle双机热备系统
-
系统环境:
-
安装相同版本的Oracle软件,企业版而非标准版。
-
SUN V245 x 2; Solaris Sparc 10 up 5; Oracle 10G up 2 。
-
建议在之前建立两台机器间Oralce用户的ssh互信认证机制。
-
Oralce官方建议使用交换机连接两台主机,原因是“网卡直连容易因为网卡故障出现问题”。个人认为一根超5类或者干脆6类线直连两台主机的可以避免交换机的使用,省钱的同时也会提升传输速度。由于原本服务器还有空闲的网口,这里采用了双机直连的方式做心跳。
-
Oracle+Sun=?
Solaris下安装Oracle 10 up 2
环境配置:SUN V245server,安装有最新版本的Solaris10update4 for SPARC,从www.oracle.com下载了最新版本的Oracle 10G update 2 — Linux 和windows已经可以下载到
首先,在/etc/system的末尾添加,否则,在安装的过程中将会提示“out of memory”之类的错误:
set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
解压oracle:
gzcat 10gr2_db_sol.cpio.gz | cpio -icvd
添加dba组和属于dba组的oracle用户,并创建相关的权限的目录:/opt/oracle/ 10.2.0/Db_1, /oracdata
修改oracle用户目录下的.profile文件,添加如下内容:
umask 022
TEMP=/tmp;export TEMP
TMPDIR=/tmp;export TMPDIR
ORACLE_HOME=/opt/oracle/ 10.2.0/Db_1;export ORACLE_HOME
ORACLE_BASE=/opt/oracle;export ORACLE_BASE
PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/ucb:/etc:/usr/openwin/bin:/usr/ccs/bin
ORACLE_SID=HSDB;export ORACLE_SID #注HSDB是我设置的数据库SID,可以根据需要设定相对应的SID
启动X界面(我的机器没有显卡,只能用Xmanger)启动安装程序:
Su oralce
Oracle的101个漏洞
Oracle这次补丁升级一共修复了惊人的101个漏洞,覆盖范围包括数据库、企业应用、开发工具和中间设备,属于Oracle季度升级的一部分。
同时Oracle还提供了其他信息,例如判定一个漏洞是否能被用于远程攻击,这个系统有利于系统管理员发现危急问题。
最严重的是“base score”漏洞,被判定为7.0级,它会影响Oracle Application Express,而主要产品数据库被修复22处,大多数危险等级在4.2左右。这个分级是依照通用弱点评价体系来判定的,思科也使用了这个标准。
虽然规模较大,不过这次修补还没有涉及到Oracle数据库9.2.0.6和10.1.0.5版,他们的补丁要到这个月末出台。运行于Linux之上的Oracle 10.2.0.1和Windows下的Oracle 10.2.0.2也要到十月底才能得到修补。
Oracle考虑开发自己的Linux
Oracle一直以数据库软件为大家熟知,现在却在考虑是不是要发行自己的Linux版本,根据《财政时代》的报道,Oracle甚至还在考虑收购Novell的可能性。在此之前,RedHat已经收购了JBoss。
在 有了与Oracle进行市场竞争的软件之后,RedHat已经成为Oracle一个潜在的竞争对手。RedHat是目前最流行的Linux操作系统,曾经 是Oracle可以依靠的伙伴。“我们必须反省过去的关系,如同IBM一样。”Oracle的CEOLarryEllison对《财政时代》如是说。
和IBM一样,Oracle依靠开放源代码的特性,与微软的Windows领地进行着斗争。微软的SQLServer一直是Oracle最强大的竞争对手,更别提微软还有着其他一些相关产品。
过去,Oracle依靠第三方软件如Linux等提供的支持,逐渐扩大着市场。但是,“我想要全系列的产品。”Ellison说起应用软件和操作系统的时候这样表示。“我们缺少一个操作系统,你可以认为这是我们要开发自己的Linux的原因。”
从《财政时代》的报道来说,Oracle曾经考虑过收购Novell,这个第二大的Linux系统供应商感谢它收购SUSE,但是在这个时刻,这样的说法只是一个试探,Ellison如是说。
评:本人认为,开发操作系统是假,寻找一个更加有力的平台支持是真。对于这样一个数据库而言,单单仅对其自身提供支持知识是不够的,如果操作系统本身有问题,岂不坏了自家名声?况且,像oracle这样一家公司,开发一个linux操作系统并不存在技术上的难题。
优化你的数据库
最近一段时间似乎是受到了刺激,弄来弄去都是优化各种数据库的活所以继续还是写这一类的东西。凡是运行中的数据库,总会数据越来越多(废话!),性能同时也会越来越差。这里就按照一般的顺序,从应用逐步提高到硬件升级。
应用优化
任何一个数据库他的作用都不是全力运行算术运算的,所以除了必须的工作之外,其他的还是交给外部软件来完成吧。让数据库来执行类似于计算器功能的算术运算或者执行一系列无谓的数据校验可谓是愚蠢至极,过于复杂的函数最好也不要使用,记住数据库的优势在于:
-
SELECT和INSERT 指定的行
-
JOIN表
-
GROUP BY
-
ORDER BY
-
DISTINCT
对于一般的简单运算,类似于sum avg之类的操作,出于节省连接时间的考虑还是交给外部软件吧。当然不要查询应用中不需要的列;同时可以试试看UPDATE table set count=count+1 where key,性能可能会有不少提升。如果在一个批处理中进行大量修改,可以使用LOCK TABLES,例如将多个UPDATES或DELETES集中在一起;Insert使用默认值也是一个不错的选择。当然可以多试试EXPLAIN 工具,总会找到一种适合的最优化操作的。
优化数据结构
注意的是,这里说的并不是让你去更改系统的数据结构,特别是在运行中的系统中,这样做是“相当”危险的。
- 明智地使用键码。
-
键码适合搜索,但不适合索引列的插入/更新。
-
不要索引你不想用的东西。
-
虽说有种说法叫做“同样的数据只保存一次”但前提是“在所有的运算只做一次且有用”的前提下,创建足够总结表、简化表是非常有益的。
-
在大表上不做GROUP BY,相反创建大表的总结表/简化表并查询它。
-
ANALYSE过程可以帮助你找到表的最优类型:SELECT * FROM table_name PROCEDURE ANALYSE()。
数据库优化
这里一句话也讲不清这么多种数据库的优化,本站有不少相关的东西可供大家参考,并且本站会不断更新和完善,同时也希望大家协助。
磁盘优化
磁盘系统通常是影响数据库第二个重要的因素(第一重要的是内存,但内存的优化相比较复杂)
-
为系统、程序和临时文件配备一个专用磁盘,如果确是进行很多修改工作,将更新日志和事务日志放在专用磁盘上。
-
低寻道时间对数据库磁盘非常重要。对与大表,你可以估计你将需要log(行数)/log(索引块长度/3*2/(键码长度 + 数据指针长度))+1次寻到才能找到一行。对于有500000行的表,索引Mediun int类型的列,需要log(500000) / log(1024/3*2/(3 + 2))+1=4次寻道。上述索引需要500000*7*3/2=5.2M的空间。实际上,大多数块将被缓存,所以大概只需要1-2次寻道。
-
然而对于写入(如上),你将需要4次寻道请求来找到在哪里存放新键码,而且一般要2次寻道来更新索引并写入一行。
-
对于非常大的数据库,你的应用将受到磁盘寻道速度的限制,随着数据量的增加呈N log N数据级递增。
-
将数据库和表分在不同的磁盘上。在MySQL中,你可以为此而使用符号链接。
-
RAID 0将提高读和写的吞吐量。
-
RAID 0+1将更安全并提高读取的吞吐量,但写入的吞吐量将有所降低。
-
不要对临时文件或可以很容易地重建的数据所在的磁盘使用镜像或RAID(除了RAID 0)。
-
在Linux上,在引导时对磁盘使用命令hdparm -m16 -d1以启用同时读写多个扇区和DMA功能。这可以将响应时间提高5~50%。
-
在Linux上,用async (默认)和noatime挂载磁盘(mount)。
-
对于某些特定应用,可以对某些特定表使用内存磁盘,但通常不需要。
升级硬件
按照数据库对于硬件的依赖程度,内存、硬盘、CPU的顺序来升级硬件,包括操作系统。
-
如果你需要庞大的数据库表(>2G) ,最好采用64位的CPU加64位的操作系统。
-
如果有足够大的内存,关掉Swap分区吧。
-
更多的内存通过将最常用的键码页面存放在内存中可以加速键码的更新 ,但前提是要正确的设置而且配置好这些内存——这正是我前些天碰到的比较讽刺的例子,空有24G的内存只执行了2秒钟的“F5攻击”就死的一塌胡图。
-
如果不使用事务安全(transaction-safe)的表或有大表并且想避免长文件检查,一台UPS就能够在电源故障时让系统安全关闭。
-
如果数据库单独列出来需要网络连接,请选择至少千兆网卡和交换机的连接,如果采用了类似于8139的烂网卡你会抓狂的。
其他的类似于定期优化表、修复磁盘、消除碎片等等工作属于一般性的维护操作,这里不加深解。
Sun和Oracle的合作关系再延长10年
Sun Microsystems和Oracle两家公司刚刚重申了其联盟关系,它们将继续在研发、销售和市场等领域展开合作。
Sun公司CEO Scott McNealy在Oracle总部举办的一次活动中说:“我们希望让各自的员工都清楚我们两家公司合作和相互渗透的关系,我们将携手面对一些相当艰难的市场竞争。”
Sun和Oracle的伙伴关系可以追溯到20年前,Oracle也由此成为Sun平台的第一大数据库供应商,而Sun Microsystems也声称运行Oracle数据库最多的也是Sun的硬件平台。
作为合作伙伴继续延伸的一部分,Oracle得到了Sun Java编程语言接下来十年的许可。而Sun则表示计划销售预装Oracle数据库的硬件产品,购买该系统的用户可以免费使用数据库一年,并可享受技术支持。
评:
业界最高端的合作,Sun的Solaris、 JAVA + Oracle的应用,岂是“强”一个字形容的了得?
长久的伙伴关系,20年来如一日的相濡以沫,岂是“铁”一个字形容的了得?
对于业界的影响就是营造了一种"要上oracle必上solaris!用了Solaris准备oracle!"的大氛围,双赢是必然的。
Oracle DB 10g 中文乱码问题的解决
1. 安装时的乱码
2. 一些应用程序的乱码, 比如 dbca, netca
3. 一些基于oc4j的web应用的乱码, 比如 isqlplus, em
造成这些问题的原因都是一个, 就是这些程序都使用jdk, 相应的jdk(或jre) 使用的字体配置文件 font.properties 中的字体和操作系统的字体或者字体配置文件不匹配. 解决的办法是把两者改成一致.
1. 下载, 解包 ship.db.cpio.gz, 生成目录 Disk1
2. cd Disk1/stage/Components/oracle.swd.jre/1.4.2.0.0/1/DataFiles/
unzip all_except_bin.jar
(这时生成一个 jre 的目录)
cd jre/1.4.2/lib/
mv font.properties font.properties.bak
cp font.properties.zh_CN.Redhat8.0 font.properties
cd ../../../
zip -r all_except_bin.jar.new jre/
mv all_except_bin.jar.new all_except_bin.jar
(这么累啊, 其实就是把 font.properties 文件换掉. 这样安装时汉字显示就没有问题了)
3. 如法炮制, 把Disk1/stage/Components/oracle.jdk/1.4.2.0.0/1/DataFiles/sol_bin.1.1.jar
文件里面的font.properties 文件换掉, 创建数据库和执行网络配置时的乱码就没有了. isqlplus 和em 的乱码也解决了.


最近评论