前言
最近在部署一套環境,裏面的數據庫用的是Oracle。就順帶整理了一下筆記
最無語的是到2019了,還是有人分不清什麼是服務端什麼是客戶端。
先讓我裝個客戶端,特喵的又說你這個不是客戶端怎麼缺那麼多頭文件。。。
真被氣死
正文
適用於Centos6+
oracle11.*
環境檢查
檢查 swap分區、內存、磁盤大小、系統版本
df
free
uname -a
關閉selinux和防火牆
#臨時關閉
setenforce 0
#永久關閉
sed -i '/^SELINUX=/s/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
#關閉防火牆
service iptables stop
systemctl stop firewalld
systemctl disable firewalld
修改主機名和hosts
#設置主機名
echo "oracle-prod" > /etc/hostname
#增加對應的hosts記錄
echo "127.0.0.1 oracle-prod" >> /etc/hosts
Note
" 可以使用hostname來查看是否已經設置了主機名
ORA-00130: invalid listener address
添加與主機名與IP對應記錄,不然在安裝數據庫時會報錯
修改內核參數
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 32903162
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
sysctl -p
Note
" kernel.shmmax = 32903162(byte)爲本機物理內存的一半,可以使用free查看。
或者直接使用如下命令:echo $((
free | awk '/Mem/ {print $2}'
/2))
修改pam驗證登錄
echo "session required pam_limits.so" >> /etc/pam.d/login
修改用戶配置文件
cat >> /etc/profile <<EOF
export LIBXCB_ALLOW_SLOPPY_LOCK=true
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
source /etc/profile
修改系統資源限制
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
EOF
準備用戶與組
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo "rs_ora2019" | passwd --stdin oracle
準備安裝目錄
mkdir -p /u01/app/oracle/product/11.2.0.2.0/db_1
mkdir/u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 755 /u01
配置oracle用戶環境變量
cat >> /home/oracle/.bash_profile <<EOF
#Oracle Settings umask 022;
export ORACLE_SID=orcl-prod;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=\${ORACLE_BASE}/product/11.2.0.2.0/db_1;
export PATH=\$ORACLE_HOME/bin:/usr/sbin:\$PATH;
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/usr/lib;
export TNS_ADMIN=\$ORACLE_HOME/network/admin;
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
EOF
source /home/oracle/.bash_profile
安裝依賴
yum install gcc gcc-c++ libaio-devel compat-gcc-34 compat-gcc-34-c++
下載安裝包
需要下載如下兩個文件
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
若沒有在IBM註冊有賬號可以在此下載
Oracle11.2.0.2 from Nedved OD
上傳解壓安裝包
把從官網下載得到的兩個zip上傳至/home/oracle/
chown -R oracle:oracle /home/oracle/l*.zip
su - oracle
unzip ./linux.x64_11gR2_database_1of2.zip && unzip ./linux.x64_11gR2_database_2of2.zip
mkdir ora_install
mv database ora_install
Note
" 必須先解壓1of2 再解壓2of2
response下的=應答文件:db_install.rsp:安裝應答
dbca.rsp:創建數據庫應答
netca.rsp:建立監聽、本地服務名等網絡設置的應答
配置安裝應答文件
cd /home/oracle/ora_install/database/response &&
cp db_install.rsp db_install.rsp.default
cat > db_install.rsp <<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle-prod
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.2.0,oracle.oraolap:11.2.0.2.0,oracle.rdbms.dm:11.2.0.2.0,oracle.rdbms.dv:11.2.0.2.0,orcle.rdbms.lbac:11.2.0.2.0,oracle.rdbms.rat:11.2.0.2.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
EOF
部分參數含義
參數 | 說明 |
---|---|
-silent | 表示以靜默方式安裝,不會有任何提示 |
-force | 允許安裝到一個非空目錄 |
-noconfig | 表示不運行配置助手netca |
-responseFile | 表示使用哪個響應文件,必需使用絕對路徑 |
oracle.install.responseFileVersion | 響應文件模板的版本,該參數不要更改 |
oracle.install.option | 安裝選項,本例只安裝oracle軟件,該參數不要更改 |
DECLINE_SECURITY_UPDATES | 是否需要在線安全更新,設置爲false,該參數不要更改 |
ORACLE_HOSTNAME | 安裝主機名 |
UNIX_GROUP_NAME | oracle用戶用於安裝軟件的組名 |
INVENTORY_LOCATION | oracle產品清單目錄 |
SELECTED_LANGUAGES | oracle運行語言環境,一般包括引文和簡繁體中文 |
ORACLE_HOME | Oracle安裝目錄 |
ORACLE_BASE | oracle基礎目錄 |
oracle.install.db.InstallEdition | 安裝版本類型,一般是企業版 |
oracle.install.db.isCustomInstall | 是否定製安裝,默認Partitioning,OLAP,RAT都選上了 |
oracle.install.db.customComponents | 定製安裝組件列表:除了以上默認的,可加上Label Security和Database Vault |
oracle.install.db.DBA_GROUP | oracle用戶用於授予OSDBA權限的組名 |
oracle.install.db.OPER_GROUP | oracle用戶用於授予OSOPER權限的組名 |
進行安裝
cd /home/oracle/ora_install/database/
./runInstaller -silent -responseFile /home/oracle/ora_install/database/response/db_install.rsp -ignorePrereq
···
#Root scripts to run
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
Note
" 安裝過程可以再開一個窗口按照提示查看日誌運行。當安裝成功後會在執行安裝命令的那個窗口跳出#Root scripts to run ··· 的內容
切換root執行
su - root
/u01/app/oracle/product/11.2.0.2.0/db_1/root.sh
/u01/app/oracle/oraInventory/orainstRoot.sh
靜默配置監聽程序
使用 oracle 用戶
netca /silent /responsefile /home/oracle/ora_install/database/response/netca.rsp
查看輸出信息,若沒有報錯會在$TNS_ADMIN 下生成 listener.ora 和 sqlnet.ora
ll $TNS_ADMIN
通過netstat命令可以查看1521端口正在監聽
ss -antpul | grep 1521
靜默方式建庫
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname orcl-prod \
-sid orcl-prod \
-responseFile NO_VALUE \
-characterSet ZHS16GBK \
-memoryPercentage 30 -emConfiguration LOCAL
.
.
.
85% complete
96% complete
100% complete
Look at the log file "/opt/app/oracle/cfgtoollogs/dbca/orcl-prod/orcl-prod.log" for further details.
Note
參數 | 說明 |
---|---|
-silent | 指以靜默方式執行dbca命令 |
-createDatabase | 指使用dbca |
-templateName | 指定用來創建數據庫的模板名稱,這裏指定爲General_Purposedbc,即一般用途的數據庫模板 |
-gdbname | 指定創建的全局數據庫名稱,這裏指定名稱爲 orcl-prod |
-sid | 指定數據庫系統標識符,這裏指定爲 orcl-prod,與數據庫同名 |
-responseFile | 指定安裝響應文件,NO_VALUE表示沒有指定響應文件 |
-characterSet | 指定數據庫使用的字符集,這裏指定爲AL32UTF8 |
-memoryPercentage | 指定用於oracle的物理內存的百分比,這裏指定爲30% |
-emConfiguration | 指定Enterprise Management的管理選項。 |
LOCAL | 表示數據庫由Enterprise Manager本地管理 |
數據庫成功安裝之後默認是啓動狀態
檢查
1、進行實例進程檢查
ps -ef | grep ora_ | grep -v grep
2、查看監聽狀態
lsnrctl status
3、登錄查看實例狀態
sqlplus / as sysdba
設置Linux開機自啓動
修改ORACLE_HOME_LISTNER
將$ORACLE_HOME/bin下的dbstart和dbshut
裏面的ORACLE_HOME_LISTNER=$1 修改爲ORACLE_HOME_LISTNER=$ORACLE_HOME
sed -i '/ORACLE_HOME_LISTNER/s/\$1/\$ORACLE_HOME/' $ORACLE_HOME/bin/dbstart
sed -i '/ORACLE_HOME_LISTNER/s/\$1/\$ORACLE_HOME/' $ORACLE_HOME/bin/dbshut
配置oratab
將N改爲Y
sed -i '/orcl-prod/s/N/Y/' /etc/oratab
配置rc.local
cat >> /etc/rc.d/rc.local <<EOF
su oracle -lc "/u01/app/oracle/product/11.2.0.2.0/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/11.2.0.2.0/db_1/dbstart
EOF
chmod +x /etc/rc.d/rc.local
以上就oracle11g的靜默安裝了。
2019.3.29 V1