Oracle 11g R1 for Linux(RHEL5)安裝及簡單操作命令

Oracle 11g R1 for Linux(RHEL5)安裝前的準備

1.1 檢查硬件

物理內存: # grep MemTotal /proc/meminfo

交換空間: # grep SwapTotal /proc/meminfo

交換空間的大小是根據物理內存的大小來設置的,物理內存少於 2G 的則交換空間設爲物理內存的兩倍,物理內存大於 2G 的則交換空間和物理內存大小一樣。如果不符合上述規定,那麼就需要重新設置交換空間的大小。重新設置交換空間的大小有兩種方法:一種是使用 fdisk 刪除交換分區重新劃分大小;另一種是創建一個新文件,分配大小然後格式化成交換分區。本手冊使用第二種方法。

創建文件:   # touch /home/swap

分配空間:   # dd if=/dev/zero of=/home/swap bs=1024 count=4100000

格式化文件: # mkswap /home/swap

停止 swap :   # swapoff –a

使用 swap :   # swapon /home/swap

自動掛載:   # 在 etc/fstab  里加入以下一行:

/home/swap    swap     swap     default   0 0

磁盤空間: # df –ah

Oracle 11g 安裝所需的磁盤空間爲 1.7G ,如果不夠的話得另外添加。

1.2 軟件包檢查

檢查下列包是否安裝,如果未安裝則要先安裝。 # rpm -qa | grep make gcc glibc 等等

binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
gcc-4.1.1-52
gcc-c++-4.1.1-52
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11

1.3 下載軟件

這裏需要注意的有兩點:一是弄清楚服務器是 32 位的還是 64 位;二是不要下載 Oracle 11gR2 , R2 不能夠在 RHEL5 上安裝。不要辛辛苦苦的下載下來,卻發現版本不對,那就做了很多無用功了。 Oracle Database Software Downloads :

http://www.oracle.com/technology/software/products/database/index.html

2 、安裝環境設置

2.1 核心參數設置

在 /etc/sysctl.conf 文件中加入下列行:

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

fs.aio-max-nr = 3048576

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default=8388608

net.core.rmem_max=8388608

net.core.wmem_default=262144

net.core.wmem_max=1048576

運行 # sysctl –p 命令改變核心參數。

2.2 設置 Shell Limits

a 、在 /etc/security/limits.conf 文件中加入下列行:

oracle soft nofile 65536

oracle hard nofile 65536

oracle soft nproc 16384

oracle hard nproc 16384

b 、在 /etc/pam.d/login 文件中加入下列行:

session required /lib/security/pam_limits.so

session required pam_limits.so

c 、在 /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

2.3 禁用 secure Linux

修改 /etc/sysconfig/selinux 文件中的 SELINUX 項爲 disabled(SELINUX=disabled) ,使用命令 #setenforce 0 使更改生效。

2.4 創建用戶和組及相關目錄

       a 、創建 oinstall 、 dba 組

# groupadd dba

# groupadd oinstall

       b 、創建 oracle 用戶

# useradd -g oinstall -G dba oracle

# usermod -g oinstall -G dba oracle

# passwd oracle

# id oracle

       c 、創建相關安裝目錄
su oracle

# mkdir -p /opt/oracle/product

# mkdir -p /opt/oracle/product/OraHome

# mkdir -p /opt/oraInventory                     

# mkdir -p /opt/oracle/oradata                  

# mkdir -p /var/opt/oracle

       d 、設置目錄所有者和權限

# chown oracle:oinstall /opt

# chown -R oracle:oinstall /opt/oracle

# chown -R oracle:dba /opt/oraInventory

# chown oracle:dba /var/opt/oracle

# chmod -R 775 /opt/oracle

# chmod -R 755 /var/opt/oracle

       設置好後最好檢查一遍,確認上述目錄以及其子目錄的所有者和權限都設置正確。後面安裝過程中出現的權限問題大都和這裏目錄的所有者和權限設置不對有關。

2.5 設置環境變量

進入到 oracle 用戶下,更改用戶的一些配置。

# su – oracle

打開 .bash_profile 添加以下參數,主要是配置 oracle 軟件運環境參數。

if [ -f ~/.bashrc ]; then

       . ~/.bashrc

fi

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/product/OraHome

export ORACLE_SID=orcl

export ORACLE_OWNER=oracle

export ORACLE_TERM=vt100

export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

export CLASSPATH

ORA_NLS33=$ORACLE_HOME/nls/admin/data

執行以下命令讓配置馬上生效: # source $HOME/.bash_profile

2.6 設置網絡

Oracle 的安裝需要設置靜態 IP ,否則會在安裝檢查時出現警告。打開 /etc/sysconfig/network-scripts/ifcfg-eth0 ,改爲靜態 IP ,這裏注意一定要有紅色標識的那句。

DEVICE=eth0

HWADDR=00:1b:11:0f:39:85

ONBOOT=yes

BOOTPROTO=static

NETMASK=255.255.225.0

IPADDR=192.168.1.30

GATEWAY=192.168.1.1

TYPE=Ethernet

修改 /etc/hosts ,增加一行,其中第一個是服務器的靜態 IP 、第二個是服務器的域名,第三個是服務器的主機名。

192.168.1.30 localhost.localdomain localhost

3 、安裝

重新打開一個終端窗口,以 oracle 用戶登錄,運行 runInstaller 。如果用的是 X 模式,則需要設置 DISPLAY 。

# su – oracle

# export DISPLAY=192.168.1.30:0.0

# unzip linux_x86_11gR1_database.zip

# cd database

# ./ runInstaller

最好在根上建立一個文件夾,這個文件夾專門用來存放 ORACLE 的安裝文件。但是需要注意的是,在安裝 ORACLE 前,需要把這個文件夾的所有者修改成用戶 oracle ,文件夾權限最好是修改成 777 ,以免在安裝過程中出現問題。在安裝過程中會提示你以 root 權限運行 /oracle/oraInventory/orainstRoot.sh 和 /opt/oracle/product/OraHome/root.sh 兩個腳本,注意一定要以 root 權限來運行。完成後的畫面中會有管理端入口地址和 sqlplus 入口地址。

4 、啓動

Oracle 提供了兩個腳本 dbstart 和 dbshut 用來啓動和關閉數據庫。這兩個腳本首先讀取 oratab(/etc/oratab) 文件來決定哪個數據庫是需要自動啓動和關閉 , 然後啓動和關閉那些數據庫, oratab 文件通過 root.sh 創建。不過, dbstart 和 dbshut 腳本中都包含有錯誤,需要修改 ORACLE_HOME_LISTNER=$ORACLE_HOME 。

# dbstart

# sqlplus /nolog

# connect /as sysdba

在系統命令行輸入sqlplus /nolog
conn sys / as sysdba
shutdow immediate;
startup;
lsnrctl start 開啓監聽服務

如果一切順利的話,到此爲止你就可以進行 SQL 操作了。

5 、安裝過程常見錯誤

錯誤提示:

建議案 : Oracle 支持在具有 DHCP 分配的公共 IP 地址的系統上進行安裝。但應使用靜態 IP 地址來配置系統的主網絡接口 , 以便 Oracle 軟件正常工作。有關在配置有 DHCP 的系統上安裝軟件的詳細信息 , 請參閱 Installation Guide 。

解決方法:參考 2.6 設置網絡

錯誤提示:

/opt/oracle/product/OraHome/bin/lsnrctl: error while loading shared libraries: /opt/oracle/product/OraHome/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied

解決方法:關閉 SELinux ,參考 2.3 禁用 secure Linux


Linuxoracle數據庫常用命令

Oracle用戶下執行:

$ sqlplus system/manager @ file.sql  執行sql腳本文件

$ sqlplus system/manager                登錄sqlplus,使用system用戶

$ sqlplus /nolog                  以不連接數據庫的方式啓動sqlplus,啓動數據時會用到

$ lsnrctl status/stop/start                                oracle的監聽器listener狀態查看/ 

/啓動

$ imp system/manager file=/tmp/expfile.dmp log=/tmp/implogfile.log ignore=y fromuser=expuser  

touser=impuser                     用戶模式表數據導入,這裏我只使用了幾個參數,還有好多沒有 

用到的參數,如果沒有特別指定值,就使用默認的值。

$ exp username/password file=/tmp/expfile.dmp log=/tmp/proV114_exp.log           用戶模式表 

數據導出,這是最簡單的導出方法,還有好多參數沒有寫出來。

Sqlplus下執行:

SQL> conn / as sysdba                                    sysdba用戶模式連接

SQL> startup                                                 啓動數據庫

SQL> shutdown immediate                            立即關閉數據庫

SQL> desc dba_users;                                    查詢dba_users表結構

SQL> select username from dba_users;          查詢當前sid下的所有用戶的username

SQL> select count(*) from username.tablename;          查詢tablename表的行數

SQL> drop user username cascade; 刪除名稱爲usernameoracle用戶

SQL> select distinct table_name from user_tab_columns;          查看當前user模式下所有表名

附:

ORA-00922: 選項缺失或無效和ORA-28000: ORACLE賬戶鎖定的解決辦法

2010-11-04 23:26

ORA-00922: 選項缺失或無效 
錯誤原因:一般是語句的語法有問題。比如命名不對,關鍵字寫錯等等。對於非標準的命名,一般採用雙引號來創建。
解決辦法:
標識符命名規則:
1、必須以字母開始。
2、長度不能超過30個單字節字符。
3、只能包括A-Za-z0-9_$#
4、不能在相同用戶下建立兩個同名的對象。
5、不能使用保留字和關鍵字

ORA-28000: 賬戶鎖定

第一步:使用PL/SQL,登錄名爲system,數據庫名稱不變,選擇類型的時候把Normal修改爲Sysdba;
第二步:選擇myjob,查看users;
第三步:選擇system,右擊點擊編輯
第四步:修改密碼,把帳戶被鎖住的勾去掉;
第五步:點擊應用再點擊關閉
第六步:重新登錄就可以通過驗證了;

第二種
ALTER USER username ACCOUNT UNLOCK;

第三種
plsql developer中要是以scott/tiger登錄時提示ora-28000 the account is locked
解決辦法:
新裝完Oracle 10g後,用scott/tiger測試,會出現以下錯誤提示:
oracle10g the account is locked
oracle10g the password has expired
原因:默認Oracle10gscott不能登陸。
解決:
1conn sys/sys as sysdba; //DBA的身份登錄
2alter user scott account unlock;// 然後解鎖
3conn scott/tiger //彈出一個修改密碼的對話框,修改一下密碼就可以了

在運行裏面輸入cmdDOS模式下輸入sqlplus,以system用戶名登錄,密碼是剛裝oracle時自己填寫的密碼orcl,登錄進去以後。

SQL> conn sys/sys as sysdba; (分號是必須的但是我是以system登錄的所在這不應該寫conn sys/sys as sysdba應該寫conn system/orcl as sysdba;
Connected.
SQL> alter user scott account unlock;
User altered.
SQL> commit;
Commit complete.
SQL> conn scott/tiger//請輸入新密碼,並確認後OK
Password changed
Connected.

這時再到plsql developer裏面以scott/tiger登錄就可以了。。。。。

 


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