Linux下搭建oracle客戶端環境遠程連接數據庫


一、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要遠程連接的數據庫的IPPORT端口默認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 1226 19:14 oracle

 

報錯(2)

#su - oracle (進入oracle用戶)

-bash-3.2$

而並不是

[oracle@Cenos ~]$

 

解決方法: oracle用戶下缺少.bash*等配置文件,將root用戶下都拷貝過來

#ll -a ~ (查看root用戶下.bash配置文件有哪些)

-rw-------.  1 root root    14941 1227 10:24 .bash_history

-rw-r--r--.  1 root root       18 5月  20 2009 .bash_logout

-rw-r--r--.  1 root root      368 1226 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客戶端環境就整理下遇到的報錯和解決方法,大神路過如果發現不對之處希望指出!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM