linux迁移oracle客户端的方法
linux上安装完成oracle客户端后,对于相同配置的主机我们不需要重新安装客户端,只需要将client打包,上传到目标主机就可以了。具体的操作细节还需要注意将lib文件加入到系统配置文件中,使操作系统可以正常的调用so文件。
注:以下操作在 redhat操作系统中实施成功
版本如下:
Linux 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 GNU/Linux
详细操作步骤如下:
以下操作在源主机上实施:
1. cd /usr/lib/oracle
2. tar -zcvf 11.1.0.1_oracle.tar.gz 11.1.0.1/
3. scp 11.1.0.1_oracle.tar.gz 10.16.40.18:/usr/lib/
以下操作在目标主机上实施:
4. cd /usr/lib
5. umask 002 ; mkdir oracle; tar -zxvf 11.1.0.1_oracle.tar.gz -C oracle
6. cd oracle/11.1.0.1
7. ls -l #查看各个目录的权限是否正确。
# ls -al
总计 16
drwxr-xr-x 4 root root 4096 10-22 14:57 .
drwxr-xr-x 3 root root 4096 12-20 15:38 ..
drwxr-xr-x 4 root root 4096 10-22 14:41 client64
drwxrwxrwx 3 root root 4096 10-22 14:57 network
8. 切换到lib库文件所在的目录,记录下这个路径,后面会用到。
# pwd
/usr/lib/oracle/11.1.0.1/client64/lib
9. 在需运行sqlplus命令的用户下添加环境变量
export LANG=zh_CN.GB18030
export LC_CTYPE=zh_CN.GB18030
export ORACLE_SID=ORA_SID #sid 为你的数据库SID,请按实际修改。也可以不加
export LANG=zh_CN.GB18030
export LC_CTYPE=zh_CN.GB18030
export ORACLE_BASE=/usr/lib/oracle/11.1.0.1
export ORACLE_HOME=/usr/lib/oracle/11.1.0.1/client64
export TNS_ADMIN=$ORACLE_BASE/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$TNS_ADMIN:$ORACLE_BASE
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
10. 测试是否成功执行sqlplus
$ sqlplus
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
出现报错。提示没有找到相关的libsqlplus.so,诊断是库文件没有加入系统lib path和cache中。需要手工添加:
方法1:将lib文件做成软链接到操作系统/usr/lib/ /lib64等目录下,使用ln -s 命令并指定相关参数就可以。
方法2: 在/etc/ld.so.config文件中加入oracle client lib 路径完成注册。
11. 在/etc/ld.so.conf 加入第8步中记录下的路径.
echo '/usr/lib/oracle/11.1.0.1/client64/lib' >> /etc/ld.so.conf
12. 更新系统ld
# ldconfig |grep oracle
#
执行 ldconfig 加载库文件到系统中
# ldconfig -p |grep oracle 复核
# ldconfig -p|grep oracle
libsqlplusic.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libsqlplusic.so
libsqlplus.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libsqlplus.so
libocijdbc11.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libocijdbc11.so
libociei.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libociei.so
libocci.so.11.1 (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libocci.so.11.1
libnnz11.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libnnz11.so
libclntsh.so.11.1 (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so.11.1
13. 运行sqlplus查看是否正常。
$ sqlplus -v
SQL*Plus: Release 11.1.0.6.0 - Production
OK
注:以下操作在 redhat操作系统中实施成功
版本如下:
Linux 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 GNU/Linux
详细操作步骤如下:
以下操作在源主机上实施:
1. cd /usr/lib/oracle
2. tar -zcvf 11.1.0.1_oracle.tar.gz 11.1.0.1/
3. scp 11.1.0.1_oracle.tar.gz 10.16.40.18:/usr/lib/
以下操作在目标主机上实施:
4. cd /usr/lib
5. umask 002 ; mkdir oracle; tar -zxvf 11.1.0.1_oracle.tar.gz -C oracle
6. cd oracle/11.1.0.1
7. ls -l #查看各个目录的权限是否正确。
# ls -al
总计 16
drwxr-xr-x 4 root root 4096 10-22 14:57 .
drwxr-xr-x 3 root root 4096 12-20 15:38 ..
drwxr-xr-x 4 root root 4096 10-22 14:41 client64
drwxrwxrwx 3 root root 4096 10-22 14:57 network
8. 切换到lib库文件所在的目录,记录下这个路径,后面会用到。
# pwd
/usr/lib/oracle/11.1.0.1/client64/lib
9. 在需运行sqlplus命令的用户下添加环境变量
export LANG=zh_CN.GB18030
export LC_CTYPE=zh_CN.GB18030
export ORACLE_SID=ORA_SID #sid 为你的数据库SID,请按实际修改。也可以不加
export LANG=zh_CN.GB18030
export LC_CTYPE=zh_CN.GB18030
export ORACLE_BASE=/usr/lib/oracle/11.1.0.1
export ORACLE_HOME=/usr/lib/oracle/11.1.0.1/client64
export TNS_ADMIN=$ORACLE_BASE/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$TNS_ADMIN:$ORACLE_BASE
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
10. 测试是否成功执行sqlplus
$ sqlplus
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
出现报错。提示没有找到相关的libsqlplus.so,诊断是库文件没有加入系统lib path和cache中。需要手工添加:
方法1:将lib文件做成软链接到操作系统/usr/lib/ /lib64等目录下,使用ln -s 命令并指定相关参数就可以。
方法2: 在/etc/ld.so.config文件中加入oracle client lib 路径完成注册。
11. 在/etc/ld.so.conf 加入第8步中记录下的路径.
echo '/usr/lib/oracle/11.1.0.1/client64/lib' >> /etc/ld.so.conf
12. 更新系统ld
# ldconfig |grep oracle
#
执行 ldconfig 加载库文件到系统中
# ldconfig -p |grep oracle 复核
# ldconfig -p|grep oracle
libsqlplusic.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libsqlplusic.so
libsqlplus.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libsqlplus.so
libocijdbc11.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libocijdbc11.so
libociei.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libociei.so
libocci.so.11.1 (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libocci.so.11.1
libnnz11.so (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libnnz11.so
libclntsh.so.11.1 (libc6,x86-64) => /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so.11.1
13. 运行sqlplus查看是否正常。
$ sqlplus -v
SQL*Plus: Release 11.1.0.6.0 - Production
OK