使用xshell连接Linux(centos7)安装oracle11g

来源:互联网 发布:pp助手mac安卓手机版 编辑:程序博客网 时间:2024/06/06 10:03

环境:Windows2008,centos7.

工具:xmanager.

使用xshell连接上Linux主机。以root身份登录,在建立了oracle用户之后,再连接一台,因为后面会在oracle和root之间切换身份,这样操作会更方便,且避免一些问题。

连接上了之后的操作,

//以下内容为引用,但其中加入了自己在操作过程中的注意点。

1.           修改操作系统核心参数

(要点:各个路径不要弄错,如果有疑问的路径,一定先查看了再进行操作。)

root用户执行以下步骤

切换root用户命令
su root

Enter,系统提示输入密码

输入正确密码后切换成功

1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件

输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件

oraclesoft nproc 2047

oraclehard nproc 16384

oraclesoft nofile 1024 

oraclehard nofile 65536

编辑完成后按Esc键,输入“:wq”存盘退出

2)修改/etc/pam.d/login 文件,输入命令:vi /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件

sessionrequired /lib/security/pam_limits.so 

session required pam_limits.so

编辑完成后按Esc键,输入“:wq”存盘退出

3)修改linux内核,修改/etc/sysctl.conf文件,输入命令: vi /etc/sysctl.conf ,按i键进入编辑模式,将下列内容加入该文件

fs.file-max= 6815744

fs.aio-max-nr= 1048576 

kernel.shmall= 2097152

kernel.shmmax= 2147483648

kernel.shmmni= 4096

kernel.sem= 250 32000 100 128 

net.ipv4.ip_local_port_range= 9000 65500

net.core.rmem_default= 4194304

net.core.rmem_max= 4194304

net.core.wmem_default= 262144 

net.core.wmem_max = 1048576

编辑完成后按Esc键,输入“:wq”存盘退出

4)要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl-p 显示如下:

linux:~# sysctl -p

net.ipv4.icmp_echo_ignore_broadcasts= 1

net.ipv4.conf.all.rp_filter= 1

fs.file-max= 6815744

fs.aio-max-nr= 1048576

kernel.shmall= 2097152

kernel.shmmax= 2147483648

kernel.shmmni= 4096

kernel.sem= 250 32000 100 128

net.ipv4.ip_local_port_range= 9000 65500

net.core.rmem_default= 4194304

net.core.rmem_max= 4194304

net.core.wmem_default= 262144

net.core.wmem_max = 1048576

注:如果有重复设置,需以写入的内容为主,将重复的部分用#号注释。

5)编辑 /etc/profile ,输入命令:vi /etc/profile,按i键进入编辑模式,将下列内容加入该文件。

if[ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ];then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

编辑完成后按Esc键,输入“:wq”存盘退出

注:单词与符号之间有空格。

6)创建相关用户和组,作为软件安装和支持组的拥有者。

创建组

groupadd –g 200 oinstall

groupadd –g 201 dba

创建Oracle用户和密码,输入命令:

useradd –u 440 –g oinstall –G dbaoracle

passwd oracle

然后会让你输入密码,密码任意输入2次,但必须保持一致,回车确认。

7)创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:

输入命令:

mkdir /home/oracle/app

mkdir /home/oracle/app/oracle

mkdir /home/oracle/app/oradata

mkdir /home/oracle/app/oracle/product

8)更改目录属主为Oracle用户所有,输入命令:

chown -R oracle:oinstall/home/oracle/app

9)更改目录权限,输入命令

chmod 777/home/oracle/

chmod 777 /home/oracle/app/

10)配置oracle用户的环境变量,首先,切换到新创建的oracle用户下,

输入:su oracle ,然后直接在输入 : vi~/.bash_profile

按i编辑 ~/.bash_profile,进入编辑模式,增加以下内容:

exportORACLE_BASE=/home/oracle/app

exportORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1

exportORACLE_SID=orcl

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

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

编辑完成后按Esc键,输入“:wq”存盘退出

2.           安装过程

1)  当上述系统要求操作全部完成后,注销系统,在图形界面以Oracle用户登陆。

首先将下载的Oracle安装包复制到linux中,用SSH其他ftp工具拷贝。可以使用xshell上的绿色工具,直接上传到目录下。注意目录路径。

打开一个终端,运行unzip命令解压oracle安装文件,如:

输入命令:

unzip 112040_Linux-x86-64_1of7.zip

unzip 112040_Linux-x86-64_2of7.zip

解压完成后 cd 进入其解压后的目录database

输入命令:

cd database

使用ls命令可以查看解压后database所包含的文件,如下图:

切换oracle用户:

输入命令:xhost + //在xshell下,执行这条命令时,打开的是一个灰色的背景,不要管他继续操作。注意,一定直接以oracle用户登录,而不是root用户su.

切换oracle用户

依次输入命令:LANG=en

./runInstaller

装到这一步,可以看到,可以查看到有很多的rpm包没有,我们使用ssh工具将所缺失的包传上去,在root用户下执行安装命令:rpm –ivh 包名,到把包全部都安装好的情况下,再次在oracle图形界面中,点击“check again”,在环境检查过程中,就通过了

注:安装gccgcc-c++比较特殊,需要以下rpm包,需要我们一步一步检查过去,如缺失需要补上。

rpm-ivh glibc-common-2.12-1.25.el6.x86_64.rpm

rpm-ivh kernel-headers-2.6.32-131.0.15.el6.x86_64.rpm

rpm-ivh libgcc-4.4.5-6.el6.x86_64.rpm

rpm-ivh glibc-2.12-1.25.el6.x86_64.rpm

rpm-ivh libgomp-4.4.5-6.el6.x86_64.rpm

rpm-ivh nscd-2.12-1.25.el6.x86_64.rpm

rpm-ivh glibc-headers-2.12-1.25.el6.x86_64.rpm

rpm-ivh glibc-devel-2.12-1.25.el6.x86_64.rpm

rpm-ivh mpfr-2.4.1-6.el6.x86_64.rpm

rpm-ivh ppl-0.10.2-11.el6.x86_64.rpm

rpm-ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm

rpm-ivh cpp-4.4.5-6.el6.x86_64.rpm

rpm -ivh gcc-4.4.5-6.el6.x86_64.rpm

注:以上是安装gcc,软件安装顺序不能错。

rpm -ivh libstdc++-4.4.5-6.el6.x86_64.rpm

rpm -ivh libstdc++-devel-4.4.5-6.el6.x86_64.rpm

rpm -ivh gcc-c++-4.4.5-6.el6.x86_64.rpm

注:以上是安装gcc-c++

安装完成后,系统会提示你需要用root权限执行2个shell脚本。按照其提示的路径,找到其所在的位置,如:我的就在/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

和 /home/oracle/oraInventory/orainstRoot.sh 新开启一个终端,输入命令:

/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

home/oracle/oraInventory/orainstRoot.sh

3.           创建监听服务

Oracle用户下执行命令:netca(假如命令不执行,则退出之后,直接用oracle用户登录,而不是在root用户下,用su 的命令进入。否则可能出现 display尚未设置这样的问题)

注:如果出现乱码,需先执行LANG=en,在执行netca

系统会出现oracle监听器配置图形化界面

点击finish完成监听器配置 

输入命令:lsnrctlstatus,查看监听器信息

注:ListenerParameter File的路径为监听器文件所在的路径

输入命令:ifconfig

查看IP地址

注:eth1是本例所使用的ip地址

输入命令:

vi/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

输入i进入编辑模式,将localhost改为本机ip。

编辑完成后按Esc键,输入“:wq”存盘退出

                                                                                                                                                                         

4.           设置ip和网卡

Root用户依次执行以下命令。

输入命令:vi/etc/hosts

将内容更改成如下:
127.0.0.1   localhost

::1         localhost

10.8.10.244   oracle

#其中10.8.10.244为本例ip,具体ip要根据你的IP来设定。

输入命令:vi/etc/sysconfig/network-scripts/ifcfg-eth0

更改成如下内容:

注:不同电脑的网卡不一样,要根据ifconfig查出来的地址匹配,如果使用的是eth0网卡,就是编辑/etc/sysconfig/network-scripts/ifcfg-eth0,如果是eth1网卡,则是/etc/sysconfig/network-scripts/ifcfg-eth0(对照配置就可以。因为不同的电脑可能参数会有差异。不必配成上图一模一样也不会出现问题。)

编辑完成后按Esc键,输入“:wq”存盘退出

重启网络,输入命令:service network restart

设置好以上配置,重启系统,让配置生效。

输入命令:reboot

5.   挂载数据库

Oracle用户下依次执行以下命令

开启监听器,输入命令:lsnrctl start

登录数据库,输入命令:sqlplus/ as sysdba

进入sqlplus,挂载数据库,输入命令:startup

等待挂载完,退出。我们就可以远程连接了。

如果远程连接不了,是因为防火墙。

Root用户下依次执行以下命令

临时关闭防火墙,输入命令:chkconfigiptables off

永久关闭防火墙,输入命令:vi/etc/selinux/config

输入i进入编辑模式,将SELINUX改成disabled

编辑完成后按Esc键,输入“:wq”存盘退出

重启系统生效。

至此,数据库配置完成。

6.           导入dmp文件

Oracle用户依次执行以下命令

将dmp文件上传到/home/oracle/app/admin/orcl/dpdump

导入数据库命令:

grant MGMT_USER,DBA,RESOURCE,CONNECT,CREATE VIEW,UNLIMITED TABLESPACE to cms

impdpdirectory=DATA_PUMP_DIR full=y dumpfile=CMS.DMP logfile=dp.log

注:/home/oracle/app/admin/orcl/dpdump为本例路径,具体dpdump文件路径要根据实际情况

(如果以上方法执行不成功,试着使用imp 用户/密码 file=绝对路径/xx.dmp full=y ignore=n)

注意事项

系统重启后,需要挂载数据库和启动监听器。

启动监听器,输入命令:lsnrctlstart

登录数据库,输入命令:sqlplus/ as sysdba;

挂载数据库,输入命令:startup;

退出数据库,输入命令:quit;

Linux下一些oracle操作

创建实例

在oracle用户下,开启终端,输入命令:dbca

注:如有乱码,先输入LANG=en,在输入dbca

弹出如下界面。我们这里采用定制数据库。

经过漫长的等待,当看到此界面,说明oracle建库完成

配置本地网络服务名

(充当oracle客户端,连接别的oracle服务器)

输入连接的oracle服务器的数据库的实例名

输入oracle服务器的ip地址

选中YES测试

点击change Login 输入所连接oracle服务器的其中某一个用户名和密码(用户名oracle和设置的密码),点击OK

看到此界面说明测试成功(如果不成功,请查看网络是否畅通,所连接的oracle服务器是否启动,监听是否启动等原因)

为你所设置的本地网络服务名起个名字

开放1521端口(非centos7)

当远程连接Oracle时,客户端得到的错误信息通常是:ORA-12170: TNS:连接超时 
这时,我们基本可以肯定是服务器没有开放1521端口(假设你用默认设置)

解决方法: 
(1)假如你是在一个局域网环境,配置了防火墙。那么可以关闭Linux的防火墙。
sudo serviceiptables stop
(2)编辑iptables, 开放1521端口:
sudo vi/etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT 
:wq

重启防火墙
sudo serviceiptables restart
保存配置,以便linux重启后依然有效
sudo serviceiptables save 
查看防火墙规则:
sudo iptables -L–n

开放1521端口(centos7)

Centos7的防火墙默认不是iptables.如果没有重新设置防火墙请参照下面的操作。或是自己重新设置防火墙。

启动: systemctl start firewalld 
查看状态: systemctl status firewalld  
停止: systemctl disable firewalld 
禁用: systemctl stop firewalld 
 
2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。 
 
启动一个服务:systemctl start firewalld.service 
关闭一个服务:systemctl stop firewalld.service 
重启一个服务:systemctl restart firewalld.service 
显示一个服务的状态:systemctl status firewalld.service 
在开机时启用一个服务:systemctl enable firewalld.service 
在开机时禁用一个服务:systemctl disable firewalld.service 
查看服务是否开机启动:systemctl is-enabled firewalld.service 
查看已启动的服务列表:systemctl list-unit-files|grep enabled 
查看启动失败的服务列表:systemctl --failed 
3.配置firewalld-cmd 
查看版本: firewall-cmd --version 
查看帮助: firewall-cmd --help 
显示状态: firewall-cmd --state 
查看所有打开的端口: firewall-cmd --zone=public --list-ports 
更新防火墙规则: firewall-cmd --reload 
添加//开放1521端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent