1.常见的Oracle生产库环境:
图2-1可以说是标准的生产库环境,处处体现了冗余,有效防止了单点故障。这就是HA(高可用)
而且冗在某种条件下还可以去掉,平常实现同时运行提供服务,如果一台坏掉,另一台也可以继续提供完整服务。这就是LB(负载均衡)
也就是说实现了HA+LB(高可用+负载均衡)
还涉及一个MPIO技术(多路径技术,实现2根线能看做是一根线传输)
困惑已久的数据库各种文件的管理在上图中已经得到答案,将Oracle软件和存储的文件分开管理,即使系统坏了都可以重装,不用担心丢失数据文件,这个方案相见恨晚,very good~
ps:①一般生产库环境中,常见的方案是服务器和光纤存储交换机都选用IBM的,存储选用EMC的存储。
②服务器的硬盘过去通常选用scsi硬盘,如今是选用SAS、FC的比较多。EMC存储通常选用FC盘。
③服务器是通过HA卡和光纤与光纤存储交换机相连接的,光纤存储交换机通过光纤和存储相连接。
④生产环境中,服务器的cpu需要支持64位,linux系统和Oracle的软件,都要选用64位的。
⑤安装Oracle软件,遵循OFA(灵活体系结构)
2.Linux上安装Oracle数据库软件
前期需要注意的东东:
一般物理内存小于4g的时候,swap分区大小规划为是2倍的物理内存;
/tmp 这个如果是生产库环境,建议分给这个节点一个独立的文件系统,大小10G。练习就随意了;
/ 这个剩下的所有空间就给它吧~
Red Hat系统已经装好,网络已经配置完成;
oracle软件版本选择,建议选用企业版,因为标准版中连基本的RAC和分区表都没有;
Oracle 10g 建议安装在RedHat 4系统中;
是用OUI安装Oracle
安装可以选用静默模式安装,但需提前配置好应答文件~
存储那里选择,练习环境选用“文件系统”;生产库环境选择ASM和裸设备的比较多。
正式安装的步骤:(建议参照官方文档)
①确保需要的开发工具、系统工具都装上了;(建议配置yum来安装缺失的rpm包)
②配置网络环境(IP地址和hosts文件)-主机名和ip地址的对应写到hosts文件中。
③建立相关用户组,用户
④修改Linux一些系统内核参数,设置环境变量
$ORACLE_BASE
$ORACLE_HOME
$ORACLE_SID
$LD_LIBRARY_PATH
$NLS_LANG
$NLS_DATE_FORMAT
……
⑤xmanager 安装Oracle
⑥安装仅安装Oracle软件,最后根据提示执行两个脚本
⑦dbca创建Oracle数据库
注意:
(1)建库过程中,示例方案在生产库中肯定是不能选择的,练习环境可以选;
(2)字符集的选择就两种常见选择的方法;
(3)存储的位置,控制文件、数据文件、重做日志文件具体的位置可以选择。
⑧netca配置监听
如果监听识别不了数据库,强制让系统注册监听
SQL>alter system register
3.Oracle数据库相关软件的使用
①EM如果出问题,可以删除重建;(默认端口号1158)
EM一旦建立以后,linux服务器的主机名就不要修改了;
EM主要用到管理,性能;
ps:查看端口号,$ORACLE_HOME下,
$cd install
$more portlist.ini
②isqlplus
③sqlplus
④数据库、监听、EM、isqlplus启动和关闭的顺序
启动顺序:依次启动监听、数据库、isqlplus或EM。
$lsnrctl start
SQL>startup
$lsnrctl status
jiagulun Ready.
$isqlplusctl start
$emctl start dbconsole
关闭顺序:依次关闭isqlplus或EM、监听、数据库。
$isqlplusctl stop
$netstat -tulnp | grep 5560
$emctl stop dbconsole
$emctl status dbconsole
$lsnrctl stop
$sqlplus / as sysdba
SQL>shutdown immediate;
$ps -ef | grep ora
⑤EM管理架构
4.计算机工作机制
CPU、内存、硬盘
问:一核心CPU如何处理3个进程?
答:微观来讲,CPU只能同时执行一个程序;宏观讲,由于时间片很短,可以看做是3个进程同时被处理。
所以服务器的CPU数量比较多,服务器并发量大啊。
内存相当于一个大的缓存。
硬盘:用于永久存放数据的,硬盘属于半电子半机械的东西!
计算机处理数据的瓶颈是:I/O操作,即硬盘=>内存
linux系统的top命令
#top
Cpu(s) %us %sy %id %wa
Mem:内存被大量使用(不一定是内存不够用)
Swap:{
防止内存耗尽系统挂掉,但尽量少用;
in,out都比较频繁,说明内存不够了;
}
硬盘工作机制:
磁头悬浮在磁道上方,如果不小心触碰,就会产生物理损伤;
读数据(从硬盘读数据){
1.寻道时间T1,磁臂驱动磁头到指定磁道上方(耗时最长)
2.盘面旋转T2
3.通过接口传输数据给内存的时间T3
}
平常大家都做过的碎片整理,实际上就是把磁盘上的数据存放在一起,减少了寻道时间。
柱面:4个磁头一次性从柱面读取数据。(linux系统的分区就是根据柱面分区的)
只要硬盘在线,就会一直旋转,节能的可能会减慢转速。
这回知道了为什么平日里大家的笔记本最好不要在开机状态下乱动,否则可能会损伤磁道的原因!
硬盘的接口:
pc机{
IDE,并口
SATA,串口
SATA2,
SATA3,
}
服务器{
SCSI,并口
SAS,串口
FC
}注意:无论是pc机还是服务器的硬盘,都有串口化的历程:(串口优点是占空间少;干扰小);
IDE,SATA硬盘上没有CPU芯片,取数据会占用CPU的时间;
SCSI,SAS,FC硬盘有单独的cpu芯片,不会占用CPU那么多时间。
计算机缓存技术:
#iostat 1 10
缓存存在的意义:
1.CPU在短时间内处理相同数据的几率非常高;
2.CPU在处理相邻数据的几率非常高。
命中率=逻辑读/(逻辑读+物理读)
命中率低一定有问题,命中率高不一定没问题。
命中率高2种情况{
①正常
②逻辑读非常之大,cpu一直高负荷运转
}
缓存的特点:数据容易丢失
{
1.缓存read:大部分都是这种
2.缓存write:Oracle数据库的内存可以缓存写;存储的缓存可以缓存写。
}
存储的电池就一个作用,断电时暂时不丢数据。而如果存储的缓存电池坏了,会自动关闭缓存写。
如今存储还提供flash,在存储长时间不能加电时,可以把存储缓存中内容-->到flash中。
存储的控制器最为重要,也最为值钱。很多存储本身也提供了冗余技术,比如一个存储设备通常配有2个控制器和2个电源。
存储的特点:{
1.能够集合所有的硬盘;
2.加快了读写速度;
3.支持raid技术。
}
raid技术{
1.提高冗余
2.提高读写速度
}
raid0,raid1,raid5 --这三种现在很少单独使用了;
raid6,raid10,raid01 --这三种后面两种用的最多,推荐使用;
raid0,提高读写速度,但没有任何冗余。需要2块或以上,建议不超过6块。
raid1,对写速度没有提高,读速度有提高,提供冗余。
raid5,有冗余,1/n,写性能差,读性能高;可以坏一块硬盘,但坏了之后,读的速度会受到严重影响。
raid6,有冗余,可以坏2块硬盘,写性能很差,坏一个硬盘时,还可以,坏2个硬盘读的速度一样受到严重影响。