当前位置:文档之家› 如何搭建一个数据库服务器平台

如何搭建一个数据库服务器平台

玩Oracle也有2年的时间了,从接触Oracle 到现在,一直没有停止过学习。

要学的东西太多,刚入门的时候是这样的感觉,现在还是这样的感觉。

有时候也在想,还要学多长时间才能感觉自我良好了,有十足的自信心了。

很多朋友都想做DBA,因为他们觉得这一个高薪的行业。

但是并不是所有都明白为什么DBA是个高薪的行业。

高薪意味着压力大,责任大。

现代化的程度越高,对数据库的依赖性越大。

数据安全性和系统的安全性也就越大。

比如公司业务系统。

数据库是直接的存储地方的,他的重要性是不言而喻的,宕机带来的损失可能是按分钟或者秒算的。

而谁对这些数据库负责--DBA。

所以很多公司,企业都是找有经验的DBA ,他们也是在为他们的系统买保险。

这也是为什么企业不愿意招一个没有实战经验的DBA来管理自己的数据库。

试想某个省移动的数据库出了问题,造成数据丢失,在比如银行数据库挂了。

他们带来的损失不光是影响正常的业务运行,还有可能是数据错误。

假如你在银行存了100万,结果银行一不小心,在数据库里少了几个0. 这个是谁也不愿意看到的。

当然以上都是假设的情况。

因为像这些数据重要性极高的单位,他们都有一整套数据的保护机制。

是不会发生这种情况的。

下面就来总结一下如何的来搭建一个数据库平台。

主要从参数和一些特性的配置上来说明。

当然我玩Oracle也才2年,经验不足,可能对与这些参数的设置也不是很合理。

从网上看到过一句话:每个DBA心中对重要的参数都有一个标准。

我想这也是经验的价值。

就是要健康http:/一.Linux 系统说明,在安装操作系统之前,现在服务器上做个RAID。

一般都用RAID5.1.LINUX磁盘划分:a.对于内置2块磁盘(146GB)的系统,/目录20GB,SW AP与内存大小相当(8GB以下内存机器SW AP配置8GB),/boot 100MB。

如果作为应用服务器,那么其余空间建立/apps文件系统,mke2fs –j 命令;如果作为数据库平台,那么建立/dba文件系统20GB,其余建立/u01文件系统。

b.对于内置4-6块磁盘的系统,/目录60GB,SWAP与内存大小相当(8GB以下内存机器SW AP配置8GB),/boot 100MB。

如果作为应用服务器,那么其余空间建立/apps文件系统,mke2fs –j 命令;如果作为数据库平台,那么建立/dba文件系统40GB,其余建立/u01文件系统。

c.对于oracle数据文件目录文件系统使用mke2fs –j –T largefiles命令建立2.对于非外接存储情况下:a.ORACLE目录标准:ORACLE_HOME=/dba/app/oracle/product/10.2.0.4(按版本指定)ORACLE_BASE=/dba (dump目录为/dba/admin/sid/)Datafile目录为/u01/oradata/sid归档空间目录/u01/oradata/archive_sidb.对于有外接存储(/u02…)情况下:ORACLE目录标准:ORACLE_HOME=/dba/app/oracle/product/10.2.0.4(按版本指定)ORACLE_BASE=/u01 (dump目录为/u01/admin/sid/)c.ORACLE建库采用CUSTOMER方式,直接更改初始UNDO和TEMP空间8GB(或者4GB,或者通过增加文件数目到更大,根据业务系统),system空间512MB(或者1GB)。

Redolog为100MB,单个数据文件大小以8GB 为宜(因EXT3文件系统特性使然),建议数据文件一次性划分到8G, 以保证数据文件的连续性。

3.参数及服务配置:方法一:建立NTP时间同步服务,/etc/ntp.conf中加入server 10.0.30.172,执行# ntpdate 10.0.30.172,# service ntpd start ,# chkconfig --level 235 ntpd on西狐IT在线方法二:时间同步配置(编辑crontab)输入命令:ntpdate 10.0.30.172crontab –e(编辑crontab)按i进入输入状态,输入以下一行:01 01 * * * root /usr/sbin/ntpdate 10.0.30.172 >/dev/null 2>&1(每天01:01与时间服务器10.0.30.172同步时间):wq!(保存退出)更多信息参考我的Blog: Linux 时间同步配置/tianlesoftware/archive/2010/02/22/5315587.aspx4. Linux 内核参数修改4.1 修改内核参数/etc/sysctl.conf,对于8GB-16GB内存机器kernel.shmall = 2097152 →4194304 ( 4KB单位,总内存大小)kernel.shmmax = →8589934592(实际物理内存的2/3)kernel.shmmni = 4096对于16GB内存以上机器kernel.shmall = 2097152 →8388608 ( 4KB单位,总内存大小)kernel.shmmax = →10179869184(比实际物理内存的2/3)kernel.shmmni = 4096 –>8192net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586西大人在线/以前也整理的相关的资料,详见blog:Linux 内核参数及Oracle相关参数调整/tianlesoftware/archive/2009/10/15/4668741.aspx4.2.根据应用情况修改进程数限制/etc/security/limits.conf* soft nproc 2047* hard nproc 16384* soft nofile 1024 ->2048* hard nofile 65536在连接中的第 2.7 Configure Oracle Installation Owner Shell Limits节。

也有详细介绍。

二.Oracle 配置1.创建pfile 参数Oracle 默认只会创建spfile,但这是个二进制文件,无法进行修改。

为了保险期间。

我们要在开始就创建一个pfile 文件,语句很简单,但作用不可忽略。

SQL>Create pfile from spfile;Windows 下生成的pfile 文件默认在$ORACLE_HOME/database 下Linux 默认位置在$ORACLE_HOME/dbs 下2.SGA, PGA 设置先来看几个SQLSQL> show parameter sgaNAME TYPE V ALUE------------------------------------ ----------- -------lock_sga boolean FALSEpre_page_sga boolean FALSEsga_max_size big integer 584Msga_target big integer 584MSQL> show parameter pgaNAME TYPE V ALUE------------------------------------ ----------- ------pga_aggregate_target big integer 194MSQL> select name,value ,ISSYS_MODIFIABLE from v$parameter where name like 'sga%';NAME V ALUE ISSYS_MOD--------------- --------------- ---------sga_max_size 612368384 FALSEsga_target 612368384 IMMEDIATESQL> select name,value,issys_modifiable from v$parameter where name like 'pga%';NAME V ALUE ISSYS_MOD-------------------- ---------- ---------pga_aggregate_target 203423744 IMMEDIATE如果ISSYS_MODIFIABLE 返回的是false,说明该参数无法用alter system语句动态修改,需要重启数据库。

所以sga_max_size 是不可以动态调整的。

在安装之后我们要对PGA 和SGA 进行设置。

因为sga_max_size 是非动态的,修改后需要重启,所以我们在开始设置的时候可以把sga_max_size设大一点。

sga_target 是动态的,我们可以根绝需要进行调整。

这个调整主要根据命中率来。

这里就不多说。

当指定SGA_TARGET小于SGA_MAX_SIZE,实例重启后,SGA_MAX_SIZE就自动变为和SGA_TARGET一样的值了。

对于OLTP系统,一般的建议是将SGA_MAX_SIZE 设为物理内存的60%,PGA 设为20%。

Tianlesoftware 学习Oracle系统内存SGA_MAX_SIZE值1G 400-500M2G 1G4G 2500M8G 5G这个参数修改可以在pfile里修改,也可以通过命令直接来:SQL> alter system set pga_aggregate_target=150m scope=spfile;系统已更改。

SQL> alter system set sga_target=500m scope=spfile;系统已更改。

SQL> alter system set sga_max_size=510m scope=spfile; --要是参数生效,需要重启系统已更改。

SQL> alter system set sga_max_size=510m scope=both;alter system set sga_max_size=510m scope=both*第 1 行出现错误:ORA-02095: 无法修改指定的初始化参数SQL> alter system set sga_target=550m scope=both;系统已更改。

相关主题