centos7靜默安裝oracle11g
#關閉防火牆
systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld
#關閉SElinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0
#配置交換分區
#關閉交互分區
swapoff -a
#創建一個交換區文件
dd if=/dev/zero of=/u01/swapfile bs=1024 count=4096000
#將目的文件設置為swap分區文件
mkswap swapfile
#激活swap,立即啟用交換分區文件
swapon swapfile
#把交換區記錄到系統裡邊
echo "/u01/swapfile swap swap defaults 0 0" >> /etc/fstab
#查看交互分區大小
swapon
#查看uuid
blkid
#進行配置/etc/fstab,配置uuid
vim /etc/fstab
#添加掛載—-
UUID="你的uuid" /u01 ext4 defaults 0 0
#設置主機名
hostnamectl set-hostname 你的主機名
#yum安裝
yum -y install unzip vim* bash-completion bash-completion-extras nmap tree dos2unix nc wget lsof tcpdump lrzsz telnet screen install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc* gcc-c++* glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel pdksh sysstat unixODBC unixODBC-devel wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm //vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
#添加oracle用戶組和用戶
groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
#設置密碼
passwd oracle
#優化OS內核參數
vim /etc/sysctl.conf fs.aio-max-nr=1048576 fs.file-max=6815744 kernel.shmall=2097152 kernel.shmmni=4096 kernel.shmmax = 536870912 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=1048586
#生效
sysctl -p
#限制oracle用戶的shell許可權
vim /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 10240 oracle soft core unlimited oracle hard core unlimited
#創建目錄
mkdir -p /u01/app/oracle/product/11.2.0 mkdir /u01/app/oracle/oradata mkdir /u01/app/oracle/oraInventory mkdir /u01/app/oracle/fast_recovery_area chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/app/oracle
#創建oraInst.loc
vim /etc/oraInst.loc
inventory_loc=/u01/app/oracle/oraInventory inst_group=oinstall
#授權
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
#設置環境變數 切換到oracle用戶下面,修改 .bash_profile
su - oracle vim .bash_profile unset TNS_ADMIN export ORACLE_HOSTNAME=oracle export ORACLE_BASE=/u01/app/oracle export ORACLE_SID=ORCL export LC_ALL="en_US" export LANG="en_US" export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" source /home/oracle/.bash_profile env
#解壓軟體
su - oracle cd /home/oracle/ unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip
#設置所屬主和組
su - root cd /home/oracle/ chown -R oracle:oinstall database chmod -R +x database su - root mkdir /home/oracle/etc/ cp /home/oracle/database/response/* /home/oracle/etc/ chmod 777 /home/oracle/etc/*.rsp su – oracle vim /home/oracle/etc/db_install.rsp
#這裡是選擇安裝類型:1.只裝資料庫軟體INSTALL_DB_SWONLY 2.安裝資料庫軟體並建庫INSTALL_DB_AND_CONFIG 3.升級資料庫UPGRADE_DB
oracle.install.option=INSTALL_DB_SWONLY
#這裡是指定主機的HOSTNAME
ORACLE_HOSTNAME=你的主機名
#指定oracle inventory目錄的所有者,通常會是oinstall或者dba
UNIX_GROUP_NAME=oinstall
#指定oracle inventory目錄的路徑,如果是Win平台下可以省略
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
#指定添加的語言,可以選擇多個,用逗號隔開。大多數庫會選擇,en, zh_CN即英文和簡體中文。
SELECTED_LANGUAGES=en,zh_CN
#設置ORALCE_HOME的路徑
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
#設置ORACLE_BASE的路徑
ORACLE_BASE=/u01/app/oracle
#選擇Oracle資料庫軟體的版本,正如Win 7有標準版,高級版、專業版、旗艦版之分,不同的版本功能上會有不同。Oralce資料庫軟體在這裡也可以指定安裝的版本,通常來說,實驗環境我們都選擇Enterprise Edition即企業版
oracle.install.db.InstallEdition=EE
#這裡是是否自定義Oracle的組件,如果選擇false,則會使用默認的組件,否則需要自己在下面一條參數將要安裝的組件一一列出。通常來說只要客戶購買了相應版權,我們會安裝所有的組件,因為後期如果缺乏某個組件,要再次安裝會非常的麻煩。
oracle.install.db.isCustomInstall=true
#指定DBA組,通常是dba
oracle.install.db.DBA_GROUP=dba
#指定OPER組,通常是oinstall
oracle.install.db.OPER_GROUP=oinstall
#這裡選擇資料庫的用途,一般用途/事物處理(GENERAL_PURPOSE/TRANSACTION_PROCESSING),數據倉庫(DATA_WAREHOUSE)
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#指定Global Name
oracle.install.db.config.starterdb.globalDBName=orcl
#指定SID
oracle.install.db.config.starterdb.SID=orcl
#非常關鍵的一步,選擇字符集。錯誤的字符集會給後期帶來無盡的麻煩,所以一定要確認好字符集。通常我們選擇的是ZHS16GBK, 所謂的國標16位簡體中文庫
oracle.install.db.config.starterdb.characterSet=AL32UTF8
#指定Oracle自動管理記憶體的大小,最小是256MB
oracle.install.db.config.starterdb.memoryLimit=512
#所有schemas使用同一個密碼
oracle.install.db.config.starterdb.password.ALL=oracle
#是否設置安全更新
DECLINE_SECURITY_UPDATES=true
#開始安裝
su - oracle cd /home/oracle/database ./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
#Successfully Setup Software出現這個表示安裝成功
#查看日誌 需要耐性等待時間 有的時候回很慢
tail -f /u01/app/oracle/oraInventory/logs/xxx.log
#使用root用戶執行腳本
/u01/app/oracle/product/11.2.0/db_1/root.sh
#修改oracle的環境變數
su - oracle vim ~/.bash_profile export ORACLE_SID=你的主機名或者應用名 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export TNS_ADMIN=$ORACLE_HOME/network/admin export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/local/bin export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib export ORACLE_OWNER=oracle export SPFILE_PATH=$ORACLE_HOME/dbs export ORA_NLS10=$ORACLE_HOME/nls/data source /home/oracle/.bash_profile
#配置監聽程式
vim /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora (ADDRESS = (PROTOCOL = TCP)(HOST = 你的主機名或者IP)(PORT = 你啟動的埠)) vim /home/oracle/etc/netca.rsp 修改LISTENER_PROTOCOLS={"TCP;你啟動的埠"}
#安裝監聽
/u01/app/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp #Listener Control complete &Listener started successfully 出現這個表示成功
#查看日誌
tail -f /u01/app/oracle/cfgtoollogs/netca/xxx.log
#啟動監控程式
su - oracle
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start
#查看監聽程式
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl status
#靜默dbca建庫 在root下編輯
su - root
#編輯應答文件
vim /home/oracle/etc/dbca.rsp SID="你的主機名或者應用名" SYSPASSWORD = "你的密碼" SYSTEMPASSWORD = "你的密碼" CHARACTERSET="AL32UTF8" NATIONALCHARACTERSET="UTF8"
#建庫 在orcale用戶下執行
su - oracle
#需要查看下dbca.rsp裡面的sid要和環境變數裡面的保持一致
/u01/app/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
#查看日誌
tail -f /u01/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log cp /u01/app/oracle/admin/orcl11g/pfile/init.ora.724202053030 /u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl11g.ora
#設置Oracle開機啟動
vim /etc/oratab mydb:/u01/app/oracle/product/11.2.0:Y # //把「N」改成「Y」
# 通過dbstart 啟動此實例,監聽器
su - oracle
/u01/app/oracle/product/11.2.0/db_1/bin/dbstart $ORACLE_HOME;
# oracle的進程關閉,監聽器也停止;
/u01/app/oracle/product/11.2.0/db_1/bin/dbshut $ORACLE_HOME;
# 啟動監聽
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start;
#查看監聽
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl status;
#登錄Oracle
/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog
# 進入系統管理用戶
SQL> conn / as sysdba
Connected to an idle instance.
# 啟動oracle實例
SQL> startup;
#查看資料庫版本
SQL> SELECT * FROM V$VERSION;
#查看實例狀態
SQL> select status from v$instance;
#查看資料庫編碼
SQL> select userenv('language') from dual;
#創建用戶
SQL> create user 你的用戶名 identified by 密碼;
#授權dba
SQL> grant dba to 你的用戶名;
#授權用戶
alter user 你的用戶名 default tablespace users;
SQL> disc
#查看用戶
SQL> col username for a20 SQL> select username from dba_users;
#修改默認密碼
alter user system identified by 密碼;
alter user sys identified by 密碼;
#查看oracle實例進程
ps -ef | grep ora_ | grep -v grep
#配置啟動腳本
vim /etc/init.d/oracle #!/bin/bash # oracle: Start/Stop Oracle Database 11g R2 # chkconfig: 345 90 10 # description: The Oracle Database is an Object-Relational Database Management System. # . /etc/rc.d/init.d/functions LOCKFILE=/var/lock/subsys/oracle
#下面的路徑寫成你自己的 ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_USER=oracle case "$1" in 'start') if [ -f $LOCKFILE ]; then echo $0 already running. exit 1 fi echo -n $"Starting Oracle Database:" su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start" su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" touch $LOCKFILE ;; 'stop') if [ ! -f $LOCKFILE ]; then echo $0 already stopping. exit 1 fi echo -n $"Stopping Oracle Database:" su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop" su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut" rm -f $LOCKFILE ;; 'restart') $0 stop $0 start ;; 'status') if [ -f $LOCKFILE ]; then echo $0 started. else echo $0 stopped. fi ;; *) echo "Usage: $0 [start|stop|status]" exit 1 esac exit 0
#配置開機啟動
1.
chmod 755 /etc/init.d/oracle chkconfig oracle on service oracle (start stop status)
或者
2.
vim /etc/rc.d/rc.local su oracle -lc "/u01/app/oracle/product/11.2.0/bin/lsnrctl start" su oracle -lc /u01/app/oracle/product/11.2.0/bin/dbstart
vim /etc/oratabmydb:/u01/app/oracle/product/11.2.0:Y # //把「N」改成「Y」
swapon swapfile