Install Oracle 11G On Redhat Linux 6.8

本文详细介紹了Oracle在Linux上的安裝过程以及Standby的创建
同時,也简单說明了OS yum源的配置以及VNC安裝样例
以及Oracle 数据库的几个管理小细节

安装介质

  • Linux
    • rhel-server-6.8-x86_64.iso
  • Oracle
    • p13390677_112040_Linux-x86-64_1of7.zip
    • p13390677_112040_Linux-x86-64_2of7.zip
1. Redhat 6.8是我能夠找到的最接近Redhat7.0的版本
2. 11.2.0.4是我能夠找到的Oracle 11G的最高Patch
3. 11G在Redhat7.0很难安裝,所以应该也不会稳定  
总结:11G最好裝在Redhat6,不要奢望安裝在Redhat7

磁盘规划

  1. 硬件:
    HP580 G7: 
    8块146G的硬盘
    24G的物理內存 
    
  2. Raid5:
    其中一块做Hot Spare,可用空間大概800G  
    本想用兩块Hot Spare但Raid不支持
    又想做Raid0+1,又感觉太奢侈,空间也太小不够用
    因为我的应用至少需600G的空间
    
  3. OS:
    /boot  1024M
    /swap  20480M
    /      All Free 
    以前我的磁盘划分方式是:/ 50G /u01 50G 剩下的給/u02
    但这样,总是头疼数据库空间和备份空间不够用的问题
    也曾经多次因为Archive文件磁盘满而造成数据库异常
    OS安裝時,注意:
    1. 要安装图形界面支持,因为数据库安装需要图形界面
    2. 磁盘要选择自定义划分,否則系統会自动分区
    3. 安裝包的选择,要注意基本管理工具包的选择,特別注意语言支持包的选择
      不必要的就不用选择了,因為安裝OK后,我們可以把ISO文件复制到系統中作为yum源再自定义安裝
    

Oracle 安裝环境配置

创建Oracle用戶

1. groupadd -g 200 dba
2. useradd -u 200 -g dba -c "Oracle Software Owner" oracle
3. passwd oracle  

创建文件夾并授权

mkdir -p /u01/oracle/db
mkdir -p /u02/archive
mkdir -p /u02/backup
mkdir -p /u02/oradata
mkdir -p /tools
chown -R oracle:dba /u01
chown -R oracle:dba /u02
chown -R oracle:dba /tools
chmod -R 775 /u01
chmod -R 775 /u02
chmod -R 775 /tools

配置环境

编辑.bash_profile
在文末添加隨後的內容,注意自己的服務器名稱和SID
ORACLE_HOSTNAME=myimmsdb; export ORACLE_HOSTNAME
ORACLE_UNQNAME=SFIC; export ORACLE_UNQNAME
ORACLE_BASE=/u01/oracle; export ORACLE_BASE
DB_HOME=/u01/oracle/db; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=SFIC; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH       CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
编辑/etc/hosts 和/etc/sysconfig/network 文件
 在hosts中添加 :10.64.32.198 myimmsdb
 修改主機名為自己的命名規則
 如果hosts中沒有定義IP 和主機名稱的對應關係,在RunInstall時會報:
 PRVF-0002:Could not retrieve local nodename
 修改network中的HOSTNAME=myimmsdb
编辑/etc/sysctl.conf 文件
在sysctl.conf中添加如下內容,如果安裝oracle過程中有參數問題,再調整:
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
编辑/etc/security/limits.conf 文件
在limits.conf文末# End of file前
oracle         soft    nproc   2047
oracle         hard    nproc   16384
oracle         soft    nofile  4096
oracle         hard    nofile  65536
oracle         soft    stack   10240
sysctl –p 使定义的参数生效

配置远端VNC访问

配置OS yum源

   1 FTP iso To Server 
   2 mkdir /mnt/isorh68
   3 mount -o loop /tools/rhel-server-6.8-x86_64.iso /mnt/isorh68
   4 cd /etc/yum.repo.d
   5 vi Redhat_Media.repo
在Redhat_Media.repo文末
[rhel68iso]
name=rhel68iso
baseurl=file:///mnt/isorh68
gpgcheck=0 

安裝 tigervnc

yum install tigervnc-server
或者rpm -ivh /mnt/isorh68/Packages/tigervnc-server-1.1.0-18.el6.x86_64.rpm
此時,雖然tigervnc工具安裝OK了,但還需要兩步設置
1.運行vncserver命令,設置vnc密碼
2.編輯etc/sysconfig/vncservers
    vncservers文件的文末,添加如下兩行
    VNCSERVERS="1:root"
    VNCSERVERARGS[1]="-geometry 1024x768"
    如果不設置密碼,當運行service vncserver start時,會報:
    You will require a password to access your desktops.
    如果不編輯etc/sysconfig/vncservers,當運行service vncserver start時,會報:
    Starting VNC server: no displays configured       [FAILED]

安裝Oracle软件和配置数据库(oracle用戶)

先把文件上传到tools文件夹并解压缩

unzip p13390677_112040_Linux-x86-64_1of7.zip  
unzip p13390677_112040_Linux-x86-64_2of7.zip  
tools文件夾中會自動創建database的文件夾,其中就是oracle安裝文件 

Install Oracle Software

cd /tools/database
. runInstaller (如果不出來圖形介面,請exit 在root用戶下執行xhost +)
    1.不需要提供Email,因為一般狀況下,服務器是禁止上Internet,也不需要提供
    2.不需要自動更新(skip software updates)
    3.選擇Install database software only
    4.選擇Single Instance database installion
    5.Language把我們認為需要的都選擇上
    6.肯定選擇Enterprise Edition
    7.Oracle Base 以及Software Location按照Default即可
    一路Next
    一些依賴軟件包需要安裝,按著提示的依次安裝即可,例如:
     yum install gcc-4.4.7
     yum install gcc-c++-4.4.7
     pdksh在redhat6.8中沒有提供,我是從redhat5.5中找到並安裝這個rpm的
     pdksh-5.2.14-36.el5.x86_64.rpm
 最後再按照提示,以root用戶執行兩個腳本,應該就會提示:
 The installation of Oracle Database was successful    

执行netca 设置Listenrer

按照向導選擇Listener Configuration 一直Next至到出現Finish按鈕為止  
此時執行lsnrctl status,即可看到
The listener supports no services 因為還沒有任何Instance運行
The command completed successfully

执行 dbca 创建数据库

Database Identification 頁面,注意設定和自己編輯的Bash_profile中的SID一致
     在本例中,Global Database Name 和SID 都設定為SFIC
Database Credentials 頁面,注意設定密碼,
     一般選擇Use the Same Administrative Password for all Accounts 
Database File Locations 頁面,注意設定數據庫文件路徑
     我是選擇Use Common Location for All Database Files,然後選擇/u02/oradata
Recovery Configuation 頁面,注意取消勾選,Specify Fast Recovery Area
     因為當真有無操作,我們可以利用Flashback恢復數據,當然這有時間限制
Initialization Parameters 頁面,注意:
       1.內存 2.Sizing中的Processes 
       3.Character Sets,我一般選擇Use Unicode(Al32UTF8)
       4.Connection Mode,我一般選擇Dedicated Server Mode
沒有特別說明的,就直接Next即可,隨後就是數據庫創建進度 
安裝完成後,再執行lsnrctl status ,可以看到有Instance "SFIC", status READY

配置数据库备份机制(oracle用戶)

配置Archive归档模式(Standby和Rman的使用必须是归档模式)

alter system set log_archive_dest_1='location=/u02/archive/sfic' scope=both;
alter system set archive_lag_target=600 scope=both; 強制每十分鐘歸檔一次
   好處是避免服務器的突然宕機,再也起不來的情形下,少丟失數據,當然前提是我們要有Standby機制
shutdown immediate
startup mount;
alter database archivelog;
alter database open;

编辑Rman备份脚本

在/u02/backup/文件夾中創建RmanBackup.sh,內容如下
 #Channel越多,備份和恢復越快,Rate 40M,數字越大,備份時耗的資源越多
 #如此腳本的好處是,在服務器上保留兩次的備份,並且會把不需要的Archive文件自動清除
    ORACLE_HOME=/u01/oracle/db
    export ORACLE_HOME
    ORACLE_BASE=/u01/oracle
    export ORACLE_BASE
    ORACLE_SID=SFIC
    export ORACLE_SID
    $ORACLE_HOME/bin/rman nocatalog target sys/oracle <<EOF
    spool log to '/u02/backup/RmanBackup.log' append;
    CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
    report obsolete;
    delete noprompt obsolete;
    run{
    allocate channel d1 device type disk rate 40M;
    allocate channel d2 device type disk rate 40M;
    allocate channel d3 device type disk rate 40M;
    allocate channel d4 device type disk rate 40M;
    backup as compressed backupset format '/u02/backup/sfic/db_%d_%T_%U.dbf' database;
    backup current controlfile format '/u02/backup/sfic/db_%d_%T_%U.ctl';
    release channel d1;
    release channel d2;
    release channel d3;
    release channel d4;
    }
    CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
    exit;
    EOF

配置crontab自动备份

首先要chmod u+x RmanBackup.sh ,否則 Crontab 不會執行
然後crontab -e
20 11 * * *  /u02/backup/RmanBackup.sh

配置standby

首先要在另一台服務器上創建一個相同SID相同數據庫文件路徑並且處於歸檔模式的數據庫
實際上來講,就是一模一樣的環境,至不過硬件可能稍微差一些而已的雙胞胎吧
然後把Product服務器上的Rman備份文件scp到/u02/backup/sfic
      如果路徑不同,需特別處理(catalog start with 'Path')
rman nocatalog target /
shutdown immediate
startup nomount;
restore controlfile from '/u02/backup/sfic/db_SFIC_20200418_t1un6ir0_1_1.ctl'
     #此時,有可能需要退出rman一次,因為原DBID和被恢復DBID是不一樣的
alter database mount;
run { 
     allocate channel d1 device type disk;
     allocate channel d2 device type disk;
     allocate channel d3 device type disk;
     allocate channel d4 device type disk; 
     restore database;
     } 
     #備份時有幾個通道,恢復時也幾個通道,會加快恢復速度
 recover  database
 shutdown immediate
 在主服務器上執行
 alter database create standby controlfile as '/u02/backup/standbysfic0418.ctl'
 然後把standbysfic0418.ctl複製到Standby服務器上,並替換原來的control0*.ctl
 再sqlplus /nolog
  startup nomount
  alter database mount standby database;
  recover standby database;
  alter database open read only;#11g Standby可以設為只讀模式供報表查詢
  alter database recover managed standby database  disconnect from session;
取消standby: alter database recover managed standby database cancel;
激活standby:alter database activate standby database;

利用rman备份恢复数据库(沒有Archive文件的情形)

 類似於Standby創建,不過在Restore後,直接
 SQLPLUS /nolog
 conn /as sysdba
 recover  database using backup controlfile; --Rman中沒有using的參數
 auto
 alter system set "_allow_resetlogs_corruption"=true scope=spfile; 隱藏參數
 shutdown immediate
 startup mount
 alter database open resetlogs;
 alter system set "_allow_resetlogs_corruption"=false scope=spfile;
    即可

其他设置:服务器重启时,数据库也重启

首先,我們要編輯/etc/oratab,把Y改成N
其次,我們需要在/etc/rc.d/rc.local中添加兩行代碼(Redhat 5不需要,也沒有這個文件)
 su oracle -lc "/u01/oracle/db/bin/lsnrctl start"
 su oracle -lc /u01/oracle/db/bin/dbstart
   -l 表示同时切换用户目录。比如你要换到oracle用户下你的目录就同时在oracle目录下。
   -c 则表示执行完命令好再返回到原来的用户
    Lsnrctl 的命令行必須帶雙引號,否則會進入命令行,達不到自動重啟Listener

其他設置:避免sysaux空間臺大

EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(2); 

其他设置:避免密码强制变更

 ALTER PROFILE "DEFAULT" LIMIT 
 FAILED_LOGIN_ATTEMPTS UNLIMITED
 PASSWORD_LIFE_TIME UNLIMITED 
 PASSWORD_LOCK_TIME UNLIMITED
 PASSWORD_GRACE_TIME UNLIMITED;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值