一、安裝環(huán)境
二补箍、安裝包下載
三卒蘸、環(huán)境配置
四校辩、安裝及配置
文章參考鏈接
一、安裝環(huán)境
以下安裝環(huán)境是在虛擬機測試環(huán)境烛芬,僅供參考
操作系統(tǒng):CentOS 7
內(nèi)存:4G
CPU:單核
硬盤:50G
交換空間:4G
二隧期、安裝包下載
三、環(huán)境配置
-
關(guān)閉防火墻
# systemctl stop firewalld.service --關(guān)閉防火墻 # systemctl disable firewalld.service -- 禁止防火墻開機啟動
-
關(guān)閉selinux
# setenforce 0 # getenforce Permissive # vim /etc/selinux/config 文件中設(shè)置SELINUX=disabled
-
修改host(可省略)
# echo "10.0.0.40 huojibufei-oracle" >> /etc/hosts # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.0.40 huojibufei-oracle
-
安裝必要的依賴包
Packages for Oracle Linux 7 and Red Hat Enterprise Linux 7
The following packages (or later versions) must be installed:
binutils-2.23.52.0.1-12.el7.x86_64 compat-libcap1-1.10-3.el7.x86_64 gcc-4.8.2-3.el7.x86_64 gcc-c++-4.8.2-3.el7.x86_64 glibc-2.17-36.el7.i686 glibc-2.17-36.el7.x86_64 glibc-devel-2.17-36.el7.i686 glibc-devel-2.17-36.el7.x86_64 ksh libaio-0.3.109-9.el7.i686 libaio-0.3.109-9.el7.x86_64 libaio-devel-0.3.109-9.el7.i686 libaio-devel-0.3.109-9.el7.x86_64 libgcc-4.8.2-3.el7.i686 libgcc-4.8.2-3.el7.x86_64 libstdc++-4.8.2-3.el7.i686 libstdc++-4.8.2-3.el7.x86_64 libstdc++-devel-4.8.2-3.el7.i686 libstdc++-devel-4.8.2-3.el7.x86_64 libXi-1.7.2-1.el7.i686 libXi-1.7.2-1.el7.x86_64 libXtst-1.2.2-1.el7.i686 libXtst-1.2.2-1.el7.x86_64 make-3.82-19.el7.x86_64 sysstat-10.1.5-1.el7.x86_64
# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 # rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
-
創(chuàng)建用戶和組
# groupadd oinstall # groupadd dba # useradd -g oinstall -G dba oracle # passwd oracle # id oracle uid=1000(oracle) gid=1000(oinstall) 組=1000(oinstall),1001(dba)
-
修改內(nèi)核參數(shù)(根據(jù)需要修改 此為32G內(nèi)存)
vim /etc/sysctl.conf
追加
fs.aio-max-nr=1048576 fs.file-max=6815744 kernel.shmall=8388608 kernel.shmmax=34359738367 kernel.sem=250 32000 100 128 kernel.shmmni=4096 kernel.panic_on_oops=1 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048576 net.ipv4.conf.all.rp_filter=2 net.ipv4.conf.default.rp_filter=2 fs.aio-max-nr=1048576 net.ipv4.ip_local_port_range=9000 65500
參數(shù)說明(一臉懵逼)
fs.aio-max-nr:
此參數(shù)限制并發(fā)未完成的請求赘娄,應(yīng)該設(shè)置避免I/O子系統(tǒng)故障仆潮。
fs.file-max:
該參數(shù)決定了系統(tǒng)中所允許的文件句柄最大數(shù)目,文件句柄設(shè)置代表linux系統(tǒng)中可以打開的文件的數(shù)量擅憔。
kernel.shmall:
該參數(shù)控制可以使用的共享內(nèi)存的總頁數(shù)鸵闪。Linux共享內(nèi)存頁大小為4KB,共享內(nèi)存段的大小都是共享內(nèi)存頁大小的整數(shù)倍。一個共享內(nèi)存段的最大大小是16G暑诸,那么需要共享內(nèi)存頁數(shù)是16GB/4KB=16777216KB /4KB=4194304(頁)蚌讼,也就是64Bit系統(tǒng)下16GB物理內(nèi)存辟灰,設(shè)置kernel.shmall = 4194304才符合要求.
kernel.shmmax:
是核心參數(shù)中最重要的參數(shù)之一,用于定義單個共享內(nèi)存段的最大值篡石。設(shè)置應(yīng)該足夠大芥喇,設(shè)置的過低可能會導(dǎo)致需要創(chuàng)建多個共享內(nèi)存段,這樣可能導(dǎo)致系統(tǒng)性能的下降凰萨。至于導(dǎo)致系統(tǒng)下降的主要原因為在實例啟動以及ServerProcess創(chuàng)建的時候继控,多個小的共享內(nèi)存段可能會導(dǎo)致當時輕微的系統(tǒng)性能的降低(在啟動的時候需要去創(chuàng)建多個虛擬地址段,在進程創(chuàng)建的時候要讓進程對多個段進行“識別”胖眷,會有一些影響)武通,但是其他時候都不會有影響。
官方建議值:
32位linux系統(tǒng):可取最大值為4GB(4294967296bytes)-1byte珊搀,即4294967295冶忱。建議值為多于內(nèi)存的一半,所以如果是32為系統(tǒng)境析,一般可取值為4294967295囚枪。
64位linux系統(tǒng):可取的最大值為物理內(nèi)存值-1byte,建議值為多于物理內(nèi)存的一半劳淆,例如链沼,如果為12GB物理內(nèi)存,可取1210241024*1024-1=12884901887沛鸵。
kernel.shmmni:
該參數(shù)是共享內(nèi)存段的最大數(shù)量括勺。shmmni缺省值4096,一般肯定是夠用了谒臼。
kernel.sem:
以kernel.sem = 250 32000 100 128為例:
250是參數(shù)semmsl的值朝刊,表示一個信號量集合中能夠包含的信號量最大數(shù)目。
32000是參數(shù)semmns的值蜈缤,表示系統(tǒng)內(nèi)可允許的信號量最大數(shù)目。
100是參數(shù)semopm的值冯挎,表示單個semopm()調(diào)用在一個信號量集合上可以執(zhí)行的操作數(shù)量底哥。
128是參數(shù)semmni的值,表示系統(tǒng)信號量集合總數(shù)房官。
net.ipv4.ip_local_port_range:
表示應(yīng)用程序可使用的IPv4端口范圍趾徽。
net.core.rmem_default:
表示套接字接收緩沖區(qū)大小的缺省值。
net.core.rmem_max:
表示套接字接收緩沖區(qū)大小的最大值翰守。
net.core.wmem_default:
表示套接字發(fā)送緩沖區(qū)大小的缺省值孵奶。
net.core.wmem_max:
表示套接字發(fā)送緩沖區(qū)大小的最大值。
使配置文件生效
sysctl -p
-
修改配置
vim /etc/security/limits.conf
追加
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
第1行是設(shè)置進程數(shù)軟限制
第2行是設(shè)置進程數(shù)硬限制
第3行是設(shè)置文件數(shù)軟限制
第4行是設(shè)置文件數(shù)硬限制
vim /etc/pam.d/login
追加
session required /lib64/security/pam_limits.so session required pam_limits.so
vim /etc/profile
追加
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
source /etc/profile
-
掛載硬盤
·dd if=/dev/zero of=/var/swap bs=1024 count=8192000·添加swap
fdisk /dev/sdb n p 1 默認 默認 w vim /etc/fstab 追加 mount -a df -h查看
-
創(chuàng)建數(shù)據(jù)庫目錄
# mkdir -p /data/oracle # chown -R oracle:oinstall /data/oracle/ # chmod -R 775 /data/oracle/
配置oracle用戶
su - oracle
vim ~/.bash_profile
追加
export ORACLE_BASE=/data/oracle/oracIns
export ORACLE_SID=orcl
source ~/.bash_profile
四蜡峰、安裝及配置
-
上傳Oracle安裝包
mkdir /home/oracle/oradb
-
安裝unzip
su root
rpm -ivh unzip-6.0-20.el7.x86_64.rpm
su - oracle
unzip -d /home/oracle/oradb/ /opt/oracle12cR2_linux64.zip
-
復(fù)制模板
cd /home/oracle mkdir etc cp /home/oracle/oradb/database/response/* /home/oracle/etc
su root
chmod -R 700 /home/oracle/etc/*.rsp
-
編輯文件內(nèi)容
su - oracle
vim /home/oracle/etc/db_install.rsp
找出以下項了袁,根據(jù)個人實際情況修改(還是一臉懵逼)
oracle.install.option=INSTALL_DB_SWONLY // 安裝類型 UNIX_GROUP_NAME=oinstall // 安裝組 INVENTORY_LOCATION=/data/oracle/oraInventory //INVENTORY目錄(不填就是默認值) ORACLE_HOME=/data/oracle/oracIns/product/12/db_1 ORACLE_BASE=/data/oracle/oracIns oracle.install.db.InstallEdition=EE // 企業(yè)版本 oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oinstall oracle.install.db.OSBACKUPDBA_GROUP=oinstall oracle.install.db.OSDGDBA_GROUP=oinstall oracle.install.db.OSKMDBA_GROUP=oinstall oracle.install.db.OSRACDBA_GROUP=oinstall oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //數(shù)據(jù)庫類型 oracle.install.db.config.starterdb.globalDBName=orcl oracle.install.db.config.starterdb.SID=orcl oracle.install.db.config.starterdb.memoryLimit=81920 //自動管理內(nèi)存的內(nèi)存(M) oracle.install.db.config.starterdb.password.ALL=oracle//設(shè)定所有數(shù)據(jù)庫用戶使用同一個密碼 SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true
-
開始安裝
cd /home/oracle/oradb/database
./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress -silent -responseFile /home/oracle/etc/db_install.rsp
su root
/data/oracle/oraInventory/orainstRoot.sh
/data/oracle/oracIns/product/12/db_1/root.sh
-
修改oracle用戶環(huán)境變量
su - oracle
vim ~/.bash_profile
export ORACLE_BASE=/data/oracle/oracIns export ORACLE_SID=orcl export ORACLE_PID=oral12 #export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export ORACLE_HOME=$ORACLE_BASE/product/12/db_1 export PATH=$PATH:$ORACLE_HOME/bin export LANG="zh_CN.UTF-8" export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
配置監(jiān)聽
cd /home/oracle/etc/
netca /silent /responsefile /home/oracle/etc/netca.rsp
lsnrctl start
若有報錯 參照此處手動創(chuàng)建listen配置文件
vim /data/oracle/oracIns/product/12/db_1/network/admin/listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /data/oracle/oracIns/product/12/db_1) (SID_NAME = orcl) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = huojibufei-oracle)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
-
修改靜默建庫文件
vim /home/oracle/etc/dbca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 gdbName=orcl sid=orcl databaseConfigType=SI createAsContainerDatabase=true numberOfPDBs=1 pdbName=orclpdb templateName=/data/oracle/oracIns/product/12/db_1/assistants/dbca/templates/General_Purpose.dbc emExpressPort=5500 omsPort=0 characterSet=ZHS16GBK listeners=LISTENER memoryPercentage=40 automaticMemoryManagement=false totalMemory=0
執(zhí)行靜默建庫
dbca -silent -createDatabase -responseFile /home/oracle/etc/dbca.rsp
·dbca -silent -deleteDatabase -sourcedb orcl -sid orcl·
[oracle@huojibufei etc]$ dbca -silent -createDatabase -responseFile /home/oracle/etc/dbca.rsp 輸入 SYS 用戶口令: 輸入 SYSTEM 用戶口令: 輸入 PDBADMIN 用戶口令:
-
切換PDB
sqlplus / as sysdba startup show con_name; show pdbs; # 切換容器 alter session set container=ORCLPDB; - startup(如果pdb容器為mount狀態(tài),startup一下) - 可以讓CDB重啟后朗恳,pdb維持其關(guān)機前的狀態(tài) - alter pluggable database ORCLPDB save state; - alter pluggable database ORCLPDB discard state; # 創(chuàng)建用戶及賦權(quán) create user huojibufei identified by huojibufei; grant connect, resource to huojibufei; grant create view to huojibufei; # 表空間權(quán)限 grant unlimited tablespace to huojibufei; select username from dba_users where INHERITED='NO'; # 查看監(jiān)聽狀態(tài) lsnrctl status
-
修改字符集為gbk
su - oracle sqlplus / as sysdba select * from v$version; shutdown immediate startup mount alter session set sql_trace=true; alter system enable restricted session; alter system set job_queue_processes=0; alter system set aq_tm_processes=0; alter database open; alter database character set internal_use ZHS16GBK; shutdown immediate; startup select userenv('language') from dual; select * from nls_database_parameters; alte1000 ystem set job_queue_processes=1000;