文章插圖

文章插圖
現在很多生產系統,對數據庫的依賴性越來越大 。數據安全性和系統的安全性也同時顯得更加重要,作為一個合格的DBA,理解并設置合理的數據庫參數是基本技能,下面著重介紹一下Oracle的一些參數和特性配置 。
一、Linux系統
在安裝操作系統之前,先在服務器上做個RAID,一般都用RAID5 。
1、LINUX磁盤劃分
【oracle配置環境變量 Linux oracle配置環境變量教程】1)對于內置2塊磁盤(146GB)的系統,/目錄20GB,SWAP與內存大小相當(8GB以下內存機器SWAP配置8GB),/boot 100MB 。如果作為應用服務器,那么其余空間建立/apps文件系統,mke2fs –j 命令;如果作為數據庫平臺,那么建立/dba文件系統20GB,其余建立/u01文件系統 。
2)對于內置4-6塊磁盤的系統,/目錄60GB,SWAP與內存大小相當(8GB以下內存機器SWAP配置8GB),/boot 100MB 。如果作為應用服務器,那么其余空間建立/apps文件系統,mke2fs –j命令;如果作為數據庫平臺,那么建立/dba文件系統40GB,其余建立/u01文件系統 。
3)對于Oracle數據文件目錄文件系統使用mke2fs –j –T largefiles命令建立 。
2、參數及服務配置
建立NTP時間同步服務,/etc/ntp.conf中加入server 10.0.0.1,執行
# ntpdate 10.0.0.1# service ntpd start # chkconfig --level 235 ntpd on3、Linux 內核參數修改
1)修改內核參數/etc/sysctl.conf
對于8GB-16GB內存機器
kernel.shmall = 2097152–> 4194304 ( 4KB單位,總內存大小)kernel.shmmax =實際物理內存的2/3kernel.shmmni = 4096對于16GB內存以上機器
kernel.shmall = 2097152 –> 8388608 ( 4KB單位,總內存大小)kernel.shmmax = 實際物理內存的2/3kernel.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 = 10485862)根據應用情況修改進程數限制
vi /etc/security/limits.conf
* soft nproc 2047* hard nproc 16384* soft nofile 1024 ->2048* hard nofile 65536二、 Oracle 參數配置
1、創建pfile 參數
Oracle 默認只會創建spfile,但這是個二進制文件,無法進行修改 。為了保險起見 。我們要在開始就創建一個pfile 文件,語句很簡單,但作用不可忽略 。
Create pfile from spfile;Windows 下生成的pfile 文件默認在$ORACLE_HOME/database 下
Linux 默認位置在$ORACLE_HOME/dbs 下
2、SGA,PGA 設置
show parameter sgashow parameter pgaselect name,value ,ISSYS_MODIFIABLE from v$parameter where name like 'sga%';select name,value,issys_modifiable from v$parameter where name like 'pga%';
對于OLTP系統,一般的建議是將SGA_MAX_SIZE 設為物理內存的60%,PGA 設為20% 。OLAP就一半一半啦 。
1)UNDO
undo 表空間放的是數據的前鏡像,當做某個記錄多修改時,原記錄就會放到undo 中 。所以Undo 表空間的大小影響數據的恢復能力 。
show parameter undo
alter system set undo_retention=10800 scope=both;
2)Temp
臨時表空間主要用途是在數據庫進行排序運算、管理索引、訪問視圖等操作時提供臨時的運算空間,當運算完成之后系統會自動清理 。當oracle里需要用到sort的時候,PGA中sort_area_size大小不夠時,將會把數據放入臨時表空間里進行排序,同時如果有異常情況的話,也會被放入臨時表空間 。
ALTER DATABASE TEMPFILE '/ORADATA/ORCL/TEMP01.DBF' RESIZE 30M;ALTER TABLESPACE TEMP ADD TEMPFILE '/ORADATA/ORCL/TEMP02.DBF' SIZE 10M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;4、修改sessions 和 processes 參數
數據庫默認的sessions 是170,Processes 是150. 這2個數值肯定是不能滿足系統需要的 。我們需要把這2個參數調大一點 。方法還是一樣,可以直接修改pfile,也可以用SQL. 建議把processes改成1000.sessions 改成2000
select name,value,issys_modifiable from v$parameter where name='sessions';select name,value,issys_modifiable from v$parameter where name='processes';
alter system set sessions=2000 scope=spfile;alter system set processes=1000 scope=spfile;5、啟動歸檔模式,并部署定期刪除歸檔文件腳本 。(mount狀態啟動)
生產庫必定運行在歸檔模式下,因為通過歸檔,我們對數據進行恢復 。我們RMAN 備份,Data Guard也需要歸檔文件 。數據庫歸檔非歸檔的切換比較簡單 。
alter system set log_archive_dest_1='location=/u01/newccs_archive';shutdown immediatestartup mountalter database archivelog;alter database open;archive log list在切換為歸檔之前一定要指定歸檔目錄,即log_archive_dest_1 。這個目錄用來指定歸檔文件存放的位置,如果不指定,就會放到閃回區 。閃回區默認只有2G,一但滿了之后就會出現問題,如導致數據庫hang或者不能啟動 。
6、開啟Flashback(mount狀態啟動)
Flashback 技術是以Undo segment中的內容為基礎的,因此受限于UNDO_RETENTON參數 。要使用flashback 的特性,必須啟用自動撤銷管理表空間 。
startup mount;select name, current_scn, flashback_on from v$database;alter database flashback on;
Redo 里記錄的是數據庫的操作 。在相關事務操作的時候,都會是先寫redo,等redo 寫完會再去修改相應的數據 。這也Oracle的一種機制 。如果出現問題,也可以通過這些記錄進行恢復 。
Redo 默認有3個組,每個組有一個文件,每個文件50M 。
將redo log 的文件大小改成100M一個 。每組創建2個成員 。最好將每組的2個成員放在不同的磁盤上 。因為寫redo 的時候是并行的,放在一起,可能會出現等待事件:Log file parallel write 。
下面直接介紹下常用的一些命令:
--顯示當前歸檔日志組和成員:select group#,member from v$logfile;--添加redo log組alter database add logfile group 4 ('XX/REDO04.LOG') size 500m;--添加新的文件到group 1:alter database add logfile member 'XX/REDO05.LOG' to group 1;--檢查新加入的log狀態select group#,sequence#,bytes,members,status from v$log;--刪除新增的group 4alter database drop logfile group 4;--刪除新增的group 1的logfile;alter database drop logfile member '/ORADATA/ORCL/REDO05.LOG';--清空logfilealter database clear logfile '/ORADATA/ORCL/REDO01.LOG';
該參數設置控制文件中存儲備份記錄的時間,在用RMAN的時候會涉及到這個參數 。備份記錄包括完全的數據庫備份記錄,以及指定的數據文件,控制文件,參數文件和歸檔目錄的備份記錄 。數據庫參數CONTROL_FILE_RECORD_KEEP_TIME以天為單位(默認值為7天),因此在默認情況下,Oracle 會將RMAN備份和恢復記錄保存7天 ??梢詫⒃搮翟O置為0到365之間的任意值 。
CONTROL_FILE_RECORD_KEEP_TIME參數會影響一系列的數據庫操作 。首先,產生RMAN備份時,由于與這些備份相關的記錄存儲在控制文件中,所以該參數直接影響數據庫控制文件的大小 。備份記錄將不斷的保存在控制文件中,控制文件將耗盡空間 。這時,Oracle 會擴展控制文件來調整備份記錄所需的存儲空間 。此外,設置為0時,將禁止擴展控制文件,并且會使得RMAN備份的保存周期不穩定 。
select name,value from v$parameter where name='control_file_record_keep_time';alter system set control_file_record_keep_time=20;show parameter control_file_record_keep_time;到這里就基本完成了參數方面的一些設置 。
上面主要講了Oracle數據庫平臺的一些參數和特性配置,主要針對oracle11g,不同版本之間可能有些差異,大家在平時調整數據庫還會設置一些什么參數呢,歡迎下發留言一起討論 。
- 華為p40pro參數配置詳細對比 華為p40pro參數配置詳情
- 榮耀青春10參數配置鴻蒙 華為榮耀10青春版參數配置
- 蘋果7的配置詳細參數 蘋果7參數詳細參數配置參
- 安裝本地yum源報錯 關于yum源配置出錯的問題
- 思科路由器的基本配置步驟 思科路由器設置圖解
- 天涯明月刀配置需求筆記本 天涯明月刀配置需求手游
- 魅藍5s參數配置情況 魅藍5s參數詳細參數表
- 樂視x625參數配置 樂視x620pro參數
- 怎么配置本地yum源 配置yum源文件
- gitlab更改密碼 gitlab怎么改密碼
