centos6.3安裝oracle11gR2

參考:學步園1 學步園2

1、 準備Oracle11g安裝所必須的安裝文件,包括如下內容:

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
2、 安裝包檢測
使用以下命令進行檢測安裝Oracle依賴的包是否都已安裝:
[root@tsp236~]# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers
然後查看哪些依賴包沒有安裝,若沒有安裝,可按以下命令進行安裝:
[root@tsp236~]# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers

也可以逐條安裝。這裏裝不全也沒關係,等到正式運行安裝Oracle時,如果依賴包不全會有異常,根據異常提示再安裝也是可以的。

(如果:安裝Oracle 11g 數據庫,在安裝過程中檢測包的依賴關係,發現缺少pdksh-5.2.14-1.i386.rpm這個包,在安裝pdksh-5.2.14-1.i386.rpm包的過程中,發現此包和ksh包衝突,卸載ksh包,再安裝完pdksh-5.2.14-1.i386.rpm包後,安裝正常進行(http://www.linuxidc.com/Linux/2013-06/86491.htm))

注意:如果在使用yum命令進行安裝時,如果yum源不可用的話,可以按以下步驟進行更新yum源:
1) 下載repo文件
下載地址:http://mirrors.163.com/.help/CentOS6-Base-163.repo

2) 備份並替換系統的repo文件
[root@tsp236 ~]# cd /etc/yum.repos.d/
[root@tsp236~]#mv CentOS-Base.repo CentOS-Base.repo.bak
[root@tsp236~]#mv /root/CentOS6-Base-163.repo CentOS-Base.repo
3) 執行yum源更新
[root@tsp236 ~]# yum clean all
[root@tsp236 ~]# yum makecache

[root@tsp236 ~]# yum update

3、 建立用戶和組(請不要複製,需要手動輸入)
[root@tsp236~]#groupadd oinstall #創建用戶組oinstall
[root@tsp236~]#groupadd dba #創建用戶組dba
[root@tsp236~]#useradd –g oinstall –G dba –d /home/oracle oracle


#在用戶組oinstall上添加用戶oracle
[root@tsp236~]#passwd oracle #設置oracle用戶密碼(這一步不是必須的,oracle用戶沒有密碼也是可以的,用root用戶進行切換即可)
在oracle用戶添加完後,需要檢測錯誤。
[root@tsp236~]#id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
下面用root執行下面的命令,將dba組添加到系統內核中:
# echo 501 > /proc/sys/vm/hugetlb_shm_group(這裏的501是上面dba的值,不一定就是501)
[root@tsp236~]#chown –R oracle:oinstall /opt 
#更改目錄組,後續oracle安裝目錄也在該目錄下
檢查域名,
4、 檢查域名,防止出現莫名的錯誤
[root@tsp236~]#cat /etc/nsswitch.conf | grep hosts
#hosts:     db files nisplus nis dns
hosts:      files dns
[root@tsp236 /]# hostname
tsp236 (機器名)
[root@tsp236 /]# domainname
(none) (沒有域就爲none,有域的話會顯示域名)
[root@tsp236 /]# cat /etc/hosts
兩種情況
a、如果返回
192.168.8.21               localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1               localhost localhost.localdomain localhost4 localhost4.localdomain4
::1             localhost6.localdomain6 localhost6
則無需處理
b、如果返回
127.0.0.1               localhost localhost.localdomain localhost4 localhost4.localdomain4
::1             localhost6.localdomain6 localhost6
則需要把代表服務器IP的那一段加上(使用vi編輯器把相應ip改成服務器的ip)
5、 修改配置
下面要修改3個重要的配置文件:
/etc/sysctl.conf、/etc/security/limits.conf及/etc/profile
若對vi編輯不是很熟悉的話,那麼建議修改前先進行文件的備份。命令如下:
cp /路徑/文件名 /路徑/文件名.bak
以/etc/sysctl.conf爲例:cp /etc/sysctl.conf /etc/sysctl.conf.bak
以下三個文件都是以root用戶打開來做修改的(注意這三個文件都是在/下)。
用vi打開對應的文件,將下面的內容分別複製到文件的最下面,保存退出即可。
[root#tso236 /]#vi /etc/sysctl.conf
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
[root@tsp236 /]#vi /etc/security/limits.conf
oracle              soft     nproc   2047
oracle              hard    nproc   16384
oracle              soft     nofile   1024
oracle              hard    nofile   65536
[root@localhost /]# vi /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
關於用戶切換問題:
oracle用戶切換root用戶:su root 或 su – root
root用戶切換到oracle用戶:su oracle 或 su – oracle
這兩種寫法都是可以的,但強調一下,切換用戶時請加上“-”(注意橫線前後都有空格),因爲我們在這裏修改配置,有橫線的命令可以把配置的環境帶過去,沒有橫線是不行的。
6、 配置環境變量
下面配置兩個環境變量文件:.bashrc和.bash_profile。
.bash_profile文件以oracle用戶來配置,如果是在root用戶下,用命令su – oracle進行切換,切換到oracle用戶下後,使用vi命令打開該文件,然後把下面的內容粘貼進去,保存退出。
[oracle@tsp236~]#vi .bash_profile
PATH=$PATH:$HOME/bin
export ORACLE_BASE=/opt/app
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
.bashrc文件以root用戶來配置,同樣如果是在oracle用戶下,要切換到root,輸入命令su – root回車,輸入密碼回車
使用vi命令創建,然後把下面的內容複製粘貼到文件中,保存退出,並使用exit命令退出,讓設置生效
[root@tsp236 ~]#vi .bashrc
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/opt/app
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
完成以後我們切換回oracle用戶來查看一下
輸入su – oracle回車
輸入env|grep ORA回車
應返回:
ORACLE_SID=orcl
ORACLE_BASE=/opt/app
ORACLE_HOME=/opt/app/oracle




7將準備好的oracle安裝文件通過ssl或者ftp方式上傳到待安裝服務器。本文檔以/opt/app爲安裝文件存放目錄。
8 安裝oracle 解壓安裝文件,修改文件
[oracle@tsp236 ~]#unzip linux.x64_11gR2_database_1of2.zip -d /opt
[oracle@tsp236 ~]#unzip linux.x64_11gR2_database_2of2.zip –d /opt
解壓後在/opt目錄下會得到一個database文件夾。
然後修改database目錄的文件屬性:[root@tsp236 opt]#chown –R oracle:oinstall opt/#(更改文件屬性)
到這裏,所有的準備工作基本完成了,但是oracle是不支持的CentOS的,所以我們還有兩個步驟要做,一是修改一個文件,繞過oracle的驗證。(需要切換到root用戶 )
命令:cd /
命令:vi /etc/redhat-release
然後將CentOS release 6.3(Final)註釋掉,添加Red Hat Enterprise Linux 6
保存並退出。
9、 安裝oracle
切換到oracle用戶下安裝,不是在命令行切換用戶,是用oracle登錄,再進行操作。

[oracle@tsp236 ~]$ export LANG=en_US

 (可以設置oracle安裝界面爲英文,中文可能出現亂碼,但是提示性的信息就看不懂了,個人用中文,後邊檢查修復也能看的懂,可能出現亂碼:

Linux下安裝Oracle11g,安裝界面亂碼問題解決方法(http://ideabean.iteye.com/blog/1934863):

解決安裝時中文是"囗囗囗囗囗囗囗囗"

1.進入剛解壓的database/stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles/all.jar

2.在桌面新建一個文件夾命名爲fallback,下載中文字體(zysong.ttf)放入裏面去。

3.用歸檔管理器打開all.jar它進入/jdk/jre/lib/fonts/把在桌面建好的fallback文件夾拖放進來,完成後的目錄結構應該是/jdk/jre/lib/fonts/fallback/zysong.ttf

)[oracle@tsp236 ~]#cd /opt/database/ 
[oracle@tsp236 database]#ls
doc   install  response  rpm runInstaller  sshsetup  stage  welcome.html
[oracle@tsp236 database]#./runInstaller
之後的安裝就跟windows下一樣了,圖形界面,這裏需要在服務器上進行操作(http://wenku.baidu.com/view/b289cfc29ec3d5bbfd0a7495.html)。
注意事項:
1)安裝過程中,最好選擇自定義安裝,在自定義安裝中要設置oracle數據庫的字符集,我們選擇的是Simplified Chinese ZHS15GBK。
2)在檢測包依賴和配置參數步驟,若檢測到有一些i386的包沒有安裝的話,可以選擇忽略,直接進行下一步。

3)在安裝到最後步驟時,有兩個腳本需要執行,用sh命令來執行orainstRoot.sh和root.sh,這時需要切換到root用戶下進行這兩個腳本的執行。

----------------------------------------------------------------------------------------------------------------------------------------------

卸載:oracle11G自帶一個卸載腳本\app 下 deinstall\deinstall ,在手動刪一些文件


-------------------------------------------

創建數據庫:在root用戶下執行dbca,創建數據庫。注意在填寫數據庫服務名得時候要跟之前配置oracle環境變量時ORACLE_SID=XXX(使用echo $ORACLE_SID可以查看)一致纔可以。還需要注意的一點就是選擇字符集,這裏選擇UTF-8就可以,該字符集支持漢字。

端口防火牆:iptables -I INPUT -p tcp --dport 1521 -j ACCEPT  
iptables -I FORWARD -p tcp --dport 1521 -j ACCEPT 

-----------------------------------------------

手動啓動oracle:
1.用 oracle用戶登錄(或su - oracle)
2. 啓動監聽:[oracle@centos63 ~]$ lsnrctl start      (關閉監聽:lsnrctl stop  監聽狀態:lsnrctl struts  ) (出現問題一般是因爲hostname不對和sid沒有添加)

如果出現The listener supports no services,可以參考http://blog.sina.com.cn/s/blog_a2d48030010179ih.html(第二種方法可以,其餘的沒試)

    如果出現:(TNS-12537: TNS:connection closed
TNS-12560: TNS:protocol adapter error
TNS-00507: Connection closed
Linux Error: 29: Illegal seek)
可能是:如果hosts文件配置出錯,使用root改個hostname不要叫localhost 即爲hostname centos63,然後配置hosts中192.168.86.128   centos63 localhost.localdomain localhost4 localhost4.localdomain4
3. sqlplus / as sysdba
4. 啓動數據庫: SQL>startup
5.關閉:SQL>shutdown immediate


----------------------

1.sqlplus / as sysdba 用sysdba身份登錄 
2.conn / as  sysdba 匿名管理員登陸
3.查看數據庫:SQL>select name from V$database; 得到vm_oracle

4.查看所有的服務:SQL> select name, failover_method, failover_type, goal, clb_goal from dba_services;

如果所有服務中註冊了vm_oracle ,監聽開啓後可以使用:

5.查看sid:SQL>select instance_name from  V$instance; 得到orcl,監聽開啓後,可以使用:



6.查看監聽文件:



----------------------


1.登錄數據庫(以sysdba權限登錄orcl):sqlplus system/123456@orcl as sysdba ,也可以用匿名sqlplus / as sysdba 

(sys超級管理員、system普通管理員、scott用戶、sh大數據(創建實例樣本))

2.oracle一個創建用戶、創建表空間、授權、建表的完整過程(參考:http://skyuck.iteye.com/blog/847859)

3.也可以用system在工具中登陸後,給新建的用戶 授予 一些創建表、存儲過程等權限。


注:

1.你把表名全改成大寫,SQL語句裏就可以隨意使用大小寫了。

2.oracle不是區分大小寫的,是建表的時候是沒有去掉雙引號。
CREATE TABLE TableName(id number); //雖然寫的時候是有大寫和小寫,但是在數據庫裏面是不區分的。
select * from tablename; //這樣是可以的
SELECT * FROM TABLENAME; //這樣寫也不會有問題
SELECT * FROM TableName; //都沒問題

但是,
CREATE TABLE "TableName"("id" number);  // 如果創建表的時候是這樣寫的,那麼就必須嚴格區分大小寫
SELECT * FROM "TableName"; //不僅要區分大小寫而且要加雙引號,以便和上面的第三種查詢方式區分開。所以問題不在於oracle,而是你的同事創建表的時候沒有去掉雙引號。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章