原文地址:https://jingyan.baidu.com/article/90895e0f29c92164ec6b0bd1.html
本人針對原文嘗試並加入自己遇到問題的處理方法而已。
1、開啟機器,本次實例分配的ip是:192.168.3.197(Xshell ssh連接)
2、安裝unzip 工具、vim編輯器(個人習慣,vi也可以)
3、在vi /etc/hosts文件中添加本機IP跟主機名
4、關閉selinux ,編輯vi /etc/selinux/config文件,設置SELINUX= enforcing 為SELINUX=disabled
5、關閉防火牆
(1)查看防火牆狀態:systemctl status firewalld
(2)停止防火牆:systemctl stop firewalld
(3)關閉自啟動防火牆服務:systemctl disable firewalld
6、安裝Oracle 11g依賴包
[root@woitumi-197 ~]# yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel
7、添加oinstall 、dba 組,新建oracle用戶並加入oinstall、dba組中;
設置oracle用戶登錄密碼;
查看Oracle用戶信息
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
8、修改內核參數:編輯 vi /etc/sysctl.conf
添加以下設置:
io-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
讓參數生效:sysctl –p
9、修改用戶的限制文件,編輯 vi /etc/security/limits.conf
添加以下配置:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
10、修改vi /etc/pam.d/login文件,添加:
session required /lib64/security/pam_limits.so
session required pam_limits.so
11、修改vi /etc/profile文件:
[root@woitumi-197 ~]# 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
12、創建安裝目錄、修改文件權限
[root@woitumi-197 ~]# mkdir -p /u01/app/oracle/product/11.2.0
[root@woitumi-197 ~]# mkdir /u01/app/oracle/oradata
[root@woitumi-197 ~]# mkdir /u01/app/oracle/inventory
[root@woitumi-197 ~]# mkdir /u01/app/oracle/fast_recovery_area
[root@woitumi-197 ~]# chown -R oracle:oinstall /u01/app/oracle
[root@woitumi-197 ~]# chmod -R 775 /u01/app/oracle
13、上傳oracle軟件包到 /tmp目錄下(xftp上傳)
14、解壓oracle軟件包:
[root@woitumi-197 tmp]# unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip
15、切換到oracle用戶,設置oracle用戶環境變量
[root@woitumi-197 database]# su - oracle
[oracle@woitumi-197 ~]$ vim .bash_profile
添加:
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
ORACLE_UNQNAME=orcl (啟動EM需要這個)
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_UNQNAME PATH
16、編輯靜默安裝響應文件
(1)切換到root 用戶進入oracle安裝包解壓后的目錄 /tmp/database/response/下備份db_install.rsp文件。
(2)編輯 /tmp/database/response/db_install.rsp文件
[root@woitumi-197 response]# vim db_install.rsp
修改以下參數:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=woitumi-197
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
17、根據響應文件安裝oracle 11g
[oracle@woitumi-197 database]$ ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /tmp/database/response/db_install.rsp
開始Oracle在后台靜默安裝。安裝過程中,如果提示[WARNING]不必理會,此時安裝程序仍在后台進行,如果出現[FATAL],則安裝程序已經停止了。
出現以上界面,說明安裝程序已在后台運行,此時再打開另外一個終端選項卡,輸入提示的會話日志目錄:
[root@woitumi-197 ~]# tail –f /u01/app/oracle/inventory/logs/installActions2017-06-09_03-00-09PM.log
看到日志文件會持續輸出安裝信息沒有輸入異常信息,則表明安裝過程正常。
待看到下圖紅色框部分,則表明安裝已經完成
18、按照提示切換root用戶運行腳本
[oracle@woitumi-197 database]$ su
[root@woitumi-197 database]# sh /u01/app/oracle/inventory/orainstRoot.sh
[root@woitumi-197 database]# sh /u01/app/oracle/product/11.2.0/root.sh
19、用oracle用戶登錄配置監聽(不能用Xshell等遠程執行此步驟)
[oracle@woitumi-197 ~]$ netca -silent -responseFile /tmp/database/response/netca.rsp
出現下圖情況時,則需要配置DISPLAY變量,配完之后重新netca:
[oracle@woitumi-197 ~]$ export DISPLAY=localhost:0.0
有時候會出現“libXext.so.6: cannot open shared object file:”的錯誤
請在root執行 yum install libXext*
成功運行后,會在/u01/app/oracle/product/11.2.0/network/admin/ 中生成listener.ora和sqlnet.ora兩個文件。
查看監聽端口:
[root@woitumi-197 admin]# netstat -tnulp | grep 1521
20、建立新庫,同時建立對應的實例
切換到root用戶,編輯vi /tmp/database/response/dbca.rsp
修改以下參數:
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/u01/app/oracle/oradata
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "1638"
21、進行靜默配置
root@woitumi-197 oracle]# su - oracle
[oracle@woitumi-197 ~]$ dbca -silent -responseFile /tmp/database/response/dbca.rsp
22、完成建庫后進行實例檢查
[oracle@woitumi-197 ~]$ ps -ef | grep ora_ | grep -v grep
23、查看監聽狀態
[oracle@woitumi-197 ~]$ lsnrctl status
24、登錄查看實例狀態
[oracle@woitumi-197 dbs]$ sqlplus / as sysdba
啟動數據庫:SQL> startup
看到以下信息,,表明數據庫實例已經啟動成功,至此,oracle 11g靜默安裝完成結束。
如果SQL> startup之后報LRM-00109錯
則需要cd /u01/app/oracle/admin/orcl/pfile到目錄下,把init.ora.59201719540文件cp到/u01/app/oracle/product/11.2.0/dbs/initorcl.ora
解決方法參考:http://yesican.blog.51cto.com/700694/471052
若遇到SQL> startup之后報LRM-01102錯
可以嘗試重啟機器得到解決,重啟后還是一樣則可以參考:
http://blog.csdn.net/lzwgood/article/details/26368323
或者借助搜索引擎搜索。
25、啟動EM
oracle用戶下輸入 emctl start dbconsole
報錯:
OC4J Configuration issue. /u01...dbhome_1/oc4j/j2ee/OC4J_DBConsole_orcl-db-01_orcl not found.
解決辦法:
oracle用戶下輸入 emca -config dbcontrol db -repos recreate;
26、Oracle創建用戶、角色、授權、建表
一、創建用戶
oracle內部有兩個建好的用戶:system和sys。用戶可直接登錄到system用戶以創建其他用戶,因為system具有創建別 的用戶的 權限。 在安裝oracle時,用戶或系統管理員首先可以為自己建立一個用戶。
語法[創建用戶]: create user 用戶名 identified by 口令[即密碼];
例子: create user test identified by test;
語法[更改用戶]: alter user 用戶名 identified by 口令[改變的口令];
例子: alter user test identified by 123456;
二、刪除用戶
語法:drop user 用戶名;
例子:drop user test;
若用戶擁有對象,則不能直接刪除,否則將返回一個錯誤值。指定關鍵字cascade,可刪除用戶所有的對象,然后再刪除用戶。
語法: drop user 用戶名 cascade;
例子: drop user test cascade;
三、授權角色
oracle為兼容以前版本,提供三種標准角色(role):connect/resource和dba.
(1)講解三種標准角色:
1》. connect role(連接角色)
--臨時用戶,特指不需要建表的用戶,通常只賦予他們connect role.
--connect是使用oracle簡單權限,這種權限只對其他用戶的表有訪問權限,包括select/insert/update和delete等。
--擁有connect role 的用戶還能夠創建表、視圖、序列(sequence)、簇(cluster)、同義詞(synonym)、回話(session)和其他 數據的鏈(link)
2》. resource role(資源角色)
--更可靠和正式的數據庫用戶可以授予resource role。
--resource提供給用戶另外的權限以創建他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。
3》. dba role(數據庫管理員角色)
--dba role擁有所有的系統權限
--包括無限制的空間限額和給其他用戶授予各種權限的能力。system由dba用戶擁有
(2)授權命令
語法: grant connect, resource to 用戶名;
例子: grant connect, resource to test;
(3)撤銷權限
語法: revoke connect, resource from 用戶名;
列子: revoke connect, resource from test;
四、創建/授權/刪除角色
除了前面講到的三種系統角色----connect、resource和dba,用戶還可以在oracle創建自己的role。用戶創建的role可以由表或系統權限或兩者的組合構成。為了創建role,用戶必須具有create role系統權限。
1》創建角色
語法: create role 角色名;
例子: create role testRole;
2》授權角色
語法: grant select on class to 角色名;
列子: grant select on class to testRole;
注:現在,擁有testRole角色的所有用戶都具有對class表的select查詢權限
3》刪除角色
語法: drop role 角色名;
例子: drop role testRole;
注:與testRole角色相關的權限將從數據庫全部刪除