一、root用戶下操作:(#是root用戶下,$是oracle用戶下)
1、從oracle官網下載兩個rpm包放置任意路徑下,使用rpm安裝:
rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
默認安裝在/usr/lib/oracle/這個路徑下。
(注:下載前需要注冊賬號,免費的,可以放心注冊)
配置環境變量:(我的配置文件)
#vim ~/.bash_profile
PATH=$PATH:$HOME/bin
export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_BASE=/usr/lib/oracle/11.2/
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH
退出並保存
# source ~/.bash_profile (使其生效)
創建tnsnames.ora配置文件
#cd /usr/lib/oracle/11.2/client64/ 或 #cd $ORACLE_HOME
#mkdir -p /network/admin(創建這兩個目錄)
#vim /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora
1 JK1 =
2 (DESCRIPTION =
3 (ADDRESS_LIST =
4 (ADDRESS = (PROTOCOL = TCP)(HOST = 173.16.21.132)(PORT = 1521))
5 )
6 (CONNECT_DATA =
7 (SERVER = DEDICATED)
8 (SERVICE_NAME = jk)
9 )
0 )
1:自己定義的連接描述符名。
4:HOST要遠程連接的數據庫的IP,PORT端口默認1521。
8:數據庫的實例名。
(注:查看實例名# ps -ef |grep pmon
oracle 3894 1 0 08:30 ? 00:00:00 ora_pmon_jk
root 5154 4546 0 09:56 pts/1 00:00:00 grep pmon
jk就是實例名)
2、連接數據庫:
# cd /usr/lib/oracle/11.2/client64/bin/
報錯(1)
# ./sqlplus system/oracle@jk1 (system:用戶名 oracle:密碼 jk1:自己定義的連接描述符名)
SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 27 09:56:54 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-21561: OID generation failed
發現報錯:ERROR:ORA-21561: OID generation failed
解決方法:
# hostname (查看機器名與127.0.0.1后的localhost不一致)
Cenos
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# hostname localhost (臨時修改)
# hostname
localhost
# vim /etc/sysconfig/network (永久修改,重啟生效)
1 NETWORKING=yes
2 HOSTNAME=localhost (修改后)
報錯(2)
再次執行:
#./sqlplus system/oracle@jk1
SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 27 10:08:11 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-12541: TNS:no listener
發現報錯:ERROR:ORA-12541: TNS:no listener
解決方法:檢查數據庫服務端是否起監聽? 數據庫是否起來?
$ lsnrctl start (開起監聽)
$ sqlplus / as sysdba (進入數據庫管理用戶)
SQL*Plus: Release 10.2.0.4.0 - Production on чǚ¶þ 12Ղ 27 10:17:40 2016
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> startup (啟動數據庫)
ORACLE instance started.
Total System Global Area 226492416 bytes
Fixed Size 2082912 bytes
Variable Size 184551328 bytes
Database Buffers 33554432 bytes
Redo Buffers 6303744 bytes
Database mounted.
Database opened.
SQL> (數據庫起來了!!)
報錯(3)
再次執行:
# ./sqlplus system/oracle@jk1
SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 27 10:15:06 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-12543: TNS:destination host unreachable
發現報錯:ERROR:ORA-12543: TNS:destination host unreachable
解決方法:應該是服務端防火牆開着,關閉防火牆。
# service iptables stop (即時生效,重啟復原)
清除防火牆規則: [ 確定 ]
把 chains 設置為 ACCEPT 策略:filter [ 確定 ]
正在卸載 Iiptables 模塊: [ 確定 ]
成功(4)
再次執行:
# ./sqlplus system/oracle@jk1
SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 27 10:18:26 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
連接成功!!
二、創建oralce用戶和oinstall組,方便管理數據庫:
(1)
創建組:
#groupadd oinstall
#groupadd dba
創建一個用戶主目錄/home/oracle:
#mkdir -p /home/oracle
創建用戶oracle 到主組oinstall,副組dba,主目錄/home/oracle:
#useradd -g oinstall -G dba -d /home/oracle/ oracle
查看用戶oracle的添加情況:
# id oracle
uid=501(oracle) gid=503(oinstall) 組=503(oinstall),504(dba)
將/usr/lib/oracle/下oracle目錄拷貝至/home/oracle
#cp -r /usr/lib/oracle/ /home/oracle
把/home的所有者改為oracle
#chown -R oracle:oinstall /home
#ll /home/ (查看)
oracle oinstall 4096 12月 26 19:14 oracle
報錯(2)
#su - oracle (進入oracle用戶)
-bash-3.2$
而並不是
[oracle@Cenos ~]$
解決方法: oracle用戶下缺少.bash*等配置文件,將root用戶下都拷貝過來
#ll -a ~ (查看root用戶下.bash配置文件有哪些)
-rw-------. 1 root root 14941 12月 27 10:24 .bash_history
-rw-r--r--. 1 root root 18 5月 20 2009 .bash_logout
-rw-r--r--. 1 root root 368 12月 26 18:16 .bash_profile
-rw-r--r--. 1 root root 176 9月 23 2004 .bashrc
將這些都復制到/home/oracle/下並chown更改其用戶分組為oracle:oinstall。
再次:
# su - oracle
[oracle@Cenos ~]$ pwd (正常了)
/home/oracle/
報錯(3)以下都是在oracle用戶下執行
開始連接數據庫:
$ sqlplus system/oracle@jk1
-bash: sqlplus: command not found
發現問題:sqlplus命令沒有找到,應該是沒有配置好環境變量
解決方法:
$ vim ~/.bash_profile
(添加這個)
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
退出並保存
$ source ~/.bash_profile (使其生效)
成功(4)
再次執行:
$ sqlplus system/oracle@jk1
SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 27 11:05:09 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
連接成功!!
最近搭建oracle客戶端環境就整理下遇到的報錯和解決方法,大神路過如果發現不對之處希望指出!!