剛剛開始學OCP。第一關,安裝,被折騰得稀碎。。。查詢了大量資料,多次失敗后終於總結出一些經驗,簡單整理如下。【2014-12-11 重新整理了一下順序,修改了腳本!】
需要注意的是:如果想嘗試我提供的環境設置腳本,一定要根據自己的實際情況修改變量!
Centos6安裝oracle10g
一、安裝流程
1、最小安裝Centos6.6虛擬機(虛擬機系統推薦Virtualbox https://www.virtualbox.org ),Centos6鏡像地址 http://mirrors.163.com/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso
- CPU: 2
- MEM: 2G
- DISK: >=20G (創建固定大小的虛擬硬盤文件能提高安裝速度)
- 分區時選最上面的 Use All Space
- 手工指定主機名、分配IP地址
2、上傳環境設置腳本,編輯變量部分,IP、主機名等值必須與本機相符。核查無誤后,運行環境設置腳本(因為腳本沒有做容錯,所以只能運行一次),環境設置腳本會提示如下錯誤,忽略。
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
3、安裝桌面環境和依賴包
[root@centos6 ~]# yum install wget -y && \
yum groupinstall "Desktop" "X Window System" && \
yum install ksh make sysstat binutils* compat-libstdc++-33* \
elfutils-libelf* gcc gcc-c++ glibc* glibc*.i686 libgcc* libgcc*.i686 \
libaio* libaio*.i686 libstdc++* libstdc++*.i686 libXp libXp.i686 \
libXt libXt.i686 libXtst libXtst.i686
安裝過程中以orausr用戶登錄,將學習用的Oracle10g安裝包復制到/home/orausr,解壓縮。如果虛擬機磁盤文件是自動增長的,此時可以用dd指令擴擴容。
[orausr@centos6 ~]$ wget http://10.34.67.204/package/oracle10g/Oracle10g-10201-Linux-X64.cpio.gz [orausr@centos6 ~]$ gunzip Oracle10g-10201-Linux-X64.cpio.gz [orausr@centos6 ~]$ cpio -idmv < Oracle10g-10201-Linux-X64.cpio [orausr@centos6 ~]$ [orausr@centos6 ~]$ rm Oracle10g-10201-Linux-X64.cpio [orausr@centos6 tmp]$ cd /tmp [orausr@centos6 tmp]$ dd if=/dev/zero of=test bs=10M count=800 oflag=sync [orausr@centos6 tmp]$ rm test
4、安裝完成后重啟系統!
5、以orausr用戶登錄控制台,運行 startx 啟動桌面,桌面里打開終端運行 ./database/runInstaller 安裝Oracle10g。以下選擇僅供參考:
- 選擇Advanced Installation
- 仔細核查安裝目錄是否跟腳本一致
- 選擇Enterprise Edition,選擇Product Languages,增加 Simplified Chinese
- Name推薦跟主機名一致,再次核查安裝目錄
- 等待自檢依賴項,完畢后點Next
- 選擇Create a database
- 選擇General Purpose
- Global Database Name、SID可以不動,選擇Database Character Set 為 Unicode standard UTF-8 AL32UTF8,選擇Create database with sample schemas
- 點Next
- 選擇File System,核查數據文件位置
- 選擇Do not enable Automatic backups
- 選擇Use the same password for all the accounts,輸入密碼,需要字母開頭,大小寫數字結合
- 點Install
- 忽略報錯,點 Continue
- 點OK
- 以root身份運行完兩個腳本后,點OK
中間會出現一個編譯錯誤,Error in invoking target 'collector' of makefile '/opt/oracle/10.2.1/instance0/sysman/lib/ins_emdb.mk'. 可以點“Continue”忽略。
6、安裝結束時,runInstaller會提示在root終端窗口運行兩個腳本 orainstRoot.sh,root.sh,照做就行,接着完成Installer里面的操作,重啟服務器。
如果安裝失敗,重新安裝之前需要刪除安裝目錄和一些文件
/opt/oracle/*
/opt/oraInventory/*
/etc/oratab
/usr/local/bin/* (新裝系統這里只有3個Oracle程序,不會有其他文件)
二、使用Oracle
1、啟動
[orausr@centos6 ~]$ emctl start dbconsole [orausr@centos6 ~]$ lsnrctl start [orausr@centos6 ~]$ dbstart
emctl start dbconsole啟動時間很長,要耐心。
第一次手工運行dbstart會報錯,需要修改dbstart腳本。嗯,oracle有個工程師叫vikrkuma,他寫腳本有點兒馬虎。。。
[orausr@centos6 ~]$ vi $ORACLE_HOME/bin/dbstart ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle 替換為 ORACLE_HOME_LISTNER=$ORACLE_HOME
2、訪問
sqlplus訪問:
[orausr@centos6 ~]$ sqlplus /nolog SQL> conn /as sysdba SQL> startup SQL> show linesize; linesize 80 SQL> set linesize 160; SQL> select * from scott.emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 14 rows selected. SQL> SQL> create user jerry identified by password123; SQL> grant create session to jerry; SQL> conn jerry/password123 SQL> show user;
OEM Web管理(需要先在sqlplus運行startup后才能正常):
http://192.168.122.2:1158/em
三、環境設置腳本
ins-c6-10g.sh
#!/bin/bash #script for Oracle10g installation on Centos6.6 #Change the following variables for your installation. local_ip="192.168.122.2" host_name="centos6" host_name_fqdn="centos6.localdomain" oracle_user="orausr" oracle_user_password="mysql" oracle_base="/opt/oracle" oracle_home="/opt/oracle/10.2.1/instance0" oracle_data="/opt/oracle/data" oracle_data_recoveryarea="/opt/oracle/data_recover" oracle_inventory="/opt/oraInventory" oracle_sid="centos6" #Change the above variables for your installation. echo "${local_ip} ${host_name} ${host_name_fqdn}" >>/etc/hosts
groupadd -g 505 dba groupadd oinstall groupadd oper useradd ${oracle_user} echo ${oracle_user_password}|passwd --stdin ${oracle_user} usermod -g oinstall -G dba ${oracle_user} mkdir -p ${oracle_base} mkdir -p ${oracle_data} mkdir -p ${oracle_data_recoveryarea} mkdir -p ${oracle_home} mkdir -p ${oracle_inventory} chown -R ${oracle_user}:oinstall ${oracle_base} chmod -R 755 ${oracle_base} chmod -R g+s ${oracle_base} chown -R ${oracle_user}:oinstall ${oracle_inventory} chmod -R 755 ${oracle_inventory} chmod -R g+s ${oracle_inventory} sysctl_value=" kernel.sem = 250 32000 100 128 fs.file-max = 65536 kernel.shmall = 2097152 kernel.shmmax = 1054525444 kernel.shmmni = 4096 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 262144 vm.hugetlb_shm_group = 505 " /bin/cp /etc/sysctl.conf /etc/sysctl.conf.bak echo -e "${sysctl_value}" >> /etc/sysctl.conf sysctl -p limits_value=" ${oracle_user} soft nofile 1024 ${oracle_user} hard nofile 65536 ${oracle_user} soft nproc 2047 ${oracle_user} hard nproc 16384 " /bin/cp /etc/security/limits.conf /etc/security/limits.conf.bak echo -e "${limits_value}" >> /etc/security/limits.conf bash_profile_value=" umask 022 ORACLE_BASE=${oracle_base} ORACLE_SID=${oracle_sid} ORACLE_HOME=${oracle_home} ORACLE_UNQNAME=${oracle_sid} export ORACLE_BASE ORACLE_SID ORACLE_HOME ORACLE_UNQNAME PATH=$PATH:${oracle_home}/bin export PATH " /bin/cp /home/${oracle_user}/.bash_profile /home/${oracle_user}/.bash_profile.bak echo -e "${bash_profile_value}" >> /home/${oracle_user}/.bash_profile /bin/cp /etc/redhat-release /root/redhat-release.bak echo "redhat4" > /etc/redhat-release
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
setenforce 0
sed 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux -i
echo echo "All prepared! Restart the system and then run Oracle Installer in linux GUI."
四、啟動過程示范:
[orausr@centos6 ~]$ emctl start dbconsole TZ set to PRC Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://c608:1158/em/console/aboutApplication Starting Oracle Enterprise Manager 10g Database Control .............................. started. ------------------------------------------------------------------ Logs are generated in directory /opt/oracle/10.2.1/instance0/c608_c608/sysman/log [orausr@centos6 ~]$ [orausr@centos6 ~]$ lsnrctl start LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-DEC-2014 14:36:50 Copyright (c) 1991, 2005, Oracle. All rights reserved. Starting /opt/oracle/10.2.1/instance0/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.1.0 - Production System parameter file is /opt/oracle/10.2.1/instance0/network/admin/listener.ora Log messages written to /opt/oracle/10.2.1/instance0/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=c608)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 11-DEC-2014 14:36:52 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/10.2.1/instance0/network/admin/listener.ora Listener Log File /opt/oracle/10.2.1/instance0/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=c608)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully [orausr@centos6 ~]$ [orausr@centos6 ~]$ dbstart [orausr@centos6 ~]$ sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Thu Dec 11 14:37:56 2014 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn /as sysdba Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 557842432 bytes Fixed Size 2022280 bytes Variable Size 163579000 bytes Database Buffers 385875968 bytes Redo Buffers 6365184 bytes Database mounted. Database opened. SQL> select * from scott.emp;