Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1705459
  • 博文数量: 263
  • 博客积分: 1218
  • 博客等级: 少尉
  • 技术积分: 2862
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-19 02:33
文章分类

全部博文(263)

文章存档

2020年(12)

2019年(2)

2018年(10)

2016年(1)

2015年(20)

2014年(115)

2013年(46)

2012年(37)

2011年(20)

分类: Oracle

2020-03-09 22:33:31

第一步: 去官网下载oracle 11g

linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip

下载这两个文件。


第二步:修改主机名

 

root权限登录虚拟机,打开终端输入命令行,将主机名改为oracledb

[root@oracledb ~]# sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network

[root@oracledb ~]# hostname oracledb


第三步:修改网络连接方式

这一步是必须要做的!因为在安装centOS(网络连接选的是桥接,不要选择NAT,否则外网无法访问你的虚拟机)的时候我们都是动态获取IP,但是在安装Oracle的时候是需要更改的,我们必须要使用静态IP,可以这样理解,装上Oracle,你的虚拟机就是提供数据访问的服务器了,IP就像你的身份证,如果你的每次都变换身份,谁能找得到你!

0 修改桥接模式,因为我的电脑是连接到路由器的,所以可以分配到多个网址,可以这么设置

虚拟机菜单---虚拟机(M---设置---硬件---网络适配器选择为桥接模式bridge,勾选已连接。确定。

1.修改网卡配置:

root用户登录,在终端输入命令行:#ifconfig可以查看网卡信息,其中inet addrIP地址的意思。

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

配置信息如下:

DEVICE="eth0"

BOOTPROTO="static"

BROADCAST=192.168.0.255

HWADDR=00:0C:29:5E:3A:55

IPADDR=192.168.0.118

IPV6INIT="yes"

ONBOOT="yes"

TYPE=Ethernet

UUID=14ce5705-a99f-4e79-aa67-b244fc4b8857

NETMASK=255.255.255.0

NETWORK=192.168.0.1

GATEWAY=192.168.0.1

DNS1=218.85.157.99

 

文件各行意思如下:

DEVICE="eth0" #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0,修改前就有,复制过来就行。

BOOTPROTO="static" #(这是需要修改的,由原来的dhcp改为static)设置网卡获得ip地址的方式,可能的选项为staticdhcp;分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址

BROADCAST=192.168.0.255 #(如果没有的话是需要自己添加的,最后一位必须是255,前面和你的外边物理机的网络ip是一致的)对应的子网

HWADDR=00:0C:29:5E:3A:55 #对应的网卡物理地址,修改前就有,复制过来就行。

IPADDR=192.168.0.118 #(自己手动添加的,必须和外部本地IP同一个网段,即前三位192.168.0和外部本机IP一致)如果设置网卡获得 ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址

IPV6INIT="yes"

ONBOOT="yes"

TYPE=Ethernet

UUID=14ce5705-a99f-4e79-aa67-b244fc4b8857 #原来修改前就有,复制过来就行

NETMASK=255.255.255.0 #(需要自己添加的,都是255.255.255.0)网卡对应的网络掩码,与外面物理机的一致

NETWORK=192.168.0.1 #(需要自己添加的,和网关GATEWAY保持一致即可)网卡对应的网络地址

GATEWAY=192.168.0.1 # (需要自己添加的,和外部物理机网关一致即可)

DNS1=218.85.157.99  DNS与物理机一致

贴一张外部物理机的网址:


(图三01)

2.修改网关配置

 修改#vim /etc/sysconfig/network文件 修改后如下:

NETWORKING=yes

HOSTNAME=oracledb

GATEWAY=192.168.0.1

意思如下:

NETWORKING=yes (表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络,而且很多系统服务程序将无法启动)

HOSTNAME=oracledb (设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应)

GATEWAY=192.168.0.1 # (需要自己添加的,设置本机外部物理机连接的网关的保持一致。)

3.修改DNS 配置

逐步进入/etc/resolv.conf文件 修改后如下: 

# Generated by NetworkManager

domain domain.name

search domain.name

nameserver 218.85.157.99

nameserver 218.85.152.99

nameserver(需要自己添加的)即是DNS服务器IP地址,第一个是首选,第二个是备用,和外部DNS物理机保持一致。

4.重启网络服务

  root执行命令:

  service network restart  或   /etc/init.d/network restart

出现错误:

弹出界面 eth0: 错误:没有找到合适的设备:没有找到可用于连接 'System eth0' 的设备。【失败】

解决:

[root@localhost home]# cd /etc/udev/rules.d/

[root@localhost rules.d]# cp 70-persistent-net.rules 70-persistent-net.rules_bak

[root@localhost rules.d]# vim 70-persistent-net.rules


(图三02)

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0


(图三03)

将物理地址改成上面70-persistent-net.rules里面刚复制的地址。

重启网络服务

  root执行命令:

  service network restart  或   /etc/init.d/network restart


(图三04

就看到网络重启成功了。

windows物理机下ping 192.168.0.118也成功了。


(图三05   

下面 linuxping 也通。

(图三05_1)


第四步:添加主机名与IP对应记录

[root@oracledb ~]# vi /etc/hosts

其实就是在文件里添加上一行:

192.168.0.118 oracledb


(图三06)

第五步:关闭防火墙Selinux(PS:我安装linux时就没有开启防火墙)

[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

[root@oracledb ~]# setenforce 0

第六步:安装依赖包

[root@oracledb ~]# yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel

第七步:创建用户和组

[root@oracledb ~]# sysctl -p

[root@oracledb ~]# groupadd -g 200 oinstall

[root@oracledb ~]# groupadd -g 201 dba

[root@oracledb ~]# useradd -u 440 -g oinstall -G dba oracle

[root@oracledb ~]# passwd oracle

更改用户 oracle 的密码 。 ( 都输123456

新的 密码:

无效的密码: 过于简单化/系统化

无效的密码: 过于简单

重新输入新的 密码:

passwd: 所有的身份验证令牌已经成功更新。

[root@localhost rules.d]#

第八步:修改内核参数

[root@oracledb ~]# vi /etc/sysctl.conf #末尾添加如下 (注:建议新手还是逐步找到相应的文件,直接在文件末尾粘贴下面的参数信息)

 

net.ipv4.ip_local_port_range= 9000 65500 

fs.file-max = 6815744 

kernel.shmall = 10523004 

kernel.shmmax = 6465333657 

kernel.shmmni = 4096 

kernel.sem = 250 32000 100128 

net.core.rmem_default=262144 

net.core.wmem_default=262144 

net.core.rmem_max=4194304 

net.core.wmem_max=1048576 

fs.aio-max-nr = 1048576

 

保存并退出。

第九步:修改系统资源限制

[root@oracledb ~]# vi /etc/security/limits.conf #末尾添加如下 (注:建议新手到文件里面进行手动添加)

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

 

[root@oracledb ~]# vi /etc/pam.d/login (注:建议新手到文件里面进行手动添加)

session required pam_namespace.so #这行文件中有,下面添加一条pam_limits.so

session required pam_limits.so

 

[root@oracledb ~]# vi /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

 

#注意上面$USER = "oracle" 这里等号的两边都有一个空格,之前没有空格用root登录时 报如下错误:

#-bash: [: root: unary operator expected

第十步:创建安装目录及设置权限,命令行输入:

 

[root@localhost opt]# cd /opt

[root@localhost opt]# mkdir oracle

[root@localhost opt]# chmod 777 oracle

[root@oracledb ~]# mkdir /opt/oracle/app/

[root@oracledb ~]# mkdir /opt/oracle/oradata/

[root@oracledb ~]# chmod 755 /opt/oracle/

[root@oracledb ~]# chmod 775 /opt/oracle/app/

[root@oracledb ~]# chown oracle.oinstall -R /opt/oracle/

第十一步:(很重要,第二遍安装差点让它搞砸)设置环境变量!

#su oracle

[oracle@localhost ~]$ cd $HOME

[oracle@oracledb ~]$ vi ~/.bash_profile (注:~/表示的是当前登录用户的根目录的意思)

#for oracle

export ORACLE_BASE=/opt/oracle/app

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export PATH=$PATH:$ORACLE_HOME/bin

 

export ORACLE_SID=orcl

export ORACLE_PID=orcl

以上信息如果命令行没法修改,我们依然需要进行找到文件进行手动添加信息,但是你会发现找不到!!!因为.开头的文件都是隐藏文件!!!所以这时候你需要进入oracle用户的文件系统,按CTRL+H即可让所有的隐藏文件都现身,然后再进行添加信息!!!

[oracle@localhost ~]$ source .bash_profile

这里我们看到主机名还是localhost,没有改成oracledb,所以我们用下面命令重启一下。

#su - root

#reboot

这样机子名称就变成oracledb了。如下:

[bill@oracledb ~]$

第十二步 将下载好的两个oracle压缩文件复制到/home/oracle目录里面。

第十三步:解压oracle文件:

[oracle@oracledb ~]$ cd $HOME

[oracle@oracledb ~]$ ls

linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

[oracle@oracledb ~]$ unzip -d oracle11g linux.x64_11gR2_database_1of2.zip

[oracle@oracledb ~]$ unzip -d oracle11g linux.x64_11gR2_database_2of2.zip

[oracle@oracledb ~]$ su root

[root@oracledb oracle]# chmod 777 oracle11g

[root@oracledb oracle]# cd oracle11g/

[root@oracledb oracle11g]# chmod 755 database/

[root@oracledb oracle11g]# su oracle

[oracle@oracledb oracle11g]$ su - oracle

密码:

[oracle@oracledb ~]$ cd oracle11g/

[oracle@oracledb oracle11g]$ cd database/

[oracle@oracledb database]$ pwd

/home/oracle/oracle11g/database

[oracle@oracledb database]$ ./runInstaller

正在启动 Oracle Universal Installer...

 

检查临时空间: 必须大于 120 MB。 实际为 75390 MB 通过

检查交换空间: 必须大于 150 MB。 实际为 8191 MB 通过

检查监视器: 监视器配置至少必须显示 256 种颜色

>>> 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过 <<<<

 

未通过某些要求检查。必须先满足这些 要求,

 

然后才能继续安装,

 

是否继续? (y/n) [n]

[root@oracledb ~]# export DISPLAY=:0

[root@oracledb ~]# xhost +

No protocol specified

xhost: unable to open display ":0"

哈哈,这里出错了,把mv /root/.Xauthority /root/.Xauthority_bak删除,reboot,重新进入,然后就都ok了。

[root@oracledb ~]# export DISPLAY=:0

[root@oracledb ~]# xhost +

access control disabled, clients can connect from any host

有这个提示就正确了。

再开一个终端:

[bill@oracledb ~]$ su - oracle

密码:

[oracle@oracledb ~]$ cd oracle11g/

[oracle@oracledb oracle11g]$ cd database/

[oracle@oracledb database]$ pwd

/home/oracle/oracle11g/database

[oracle@oracledb database]$ LANG=en_US ./runInstaller

然后就可以了。

但是没加LANG=en_US的话,启动的界面是乱码。


(图十三01)

解决办法:关掉它重新开。[oracle@oracledb database]$ LANG=en_US ./runInstaller


(图十三02)

 

2.选择安装数据库软件并创建数据,也可以选择第二项仅安装数据库软件,然后next

(图十三03)

3.选择服务器版本,如图,点击next


(图十三04)

4.单例数据库,如图,点击next


(图十三05)

5.高级模式安装,如图,点击next


(图十三06)

6.添加支持的语言,如图,点击next


(图十三07)

7.选择要安装的版本,如图,点击next

(图十三08)

8.安装数据库目录,如图,点击next


(图十三09)

9.创建详细目录


(图十三10)

10.选择配置类型


(图十三11)

11.数据库与服务名


(图十三12)

12.开启自动内存管理(如果512m太大,我是默认744,会出现提示,减少一些就可以),然后先不要点击next,而是点击Memory旁边的Charactor sets标签选项。


(图十三13)

13.设置默认编码为UTF8


(图十三14)

14.启用oracle企业管理控制台OEM


(图十三15)

15.选择数据库文件目录


(图十三16)

16.自动备份设置


(图十三17)

17.设置数据库用户名和密码,他是有一个密码建议的,否则会提示错误,密码建议是包含大写和小写字母,总长度不能低于8位。我是12345678


(图十三18)

弹窗


(图十三19

YES

18.授权的组


(图十三20

19.检查oracle一些安装要求,


(图十三21)

全失败了。

开个终端用root登录.

#su - root

#yum -y install glibc

[root@oracledb ~]# yum -y install libaio

#yum -y install binutils compat-libstdc++-33

#yum -y install libgcc

#yum -y install libstdc++

#yum -y install libstdc++-devel

都可以看到已安装了,点击back---next 还是会有点。 我们勾选ignore all


(图十三22)

 

20.finish开始安装(速度比较慢,耐心等待,喝杯咖啡)


(图十三23)


(图十三24)

安装过程会有弹窗:


(图十三25)

 

还有弹窗


(图十三26)

OK

21安装完成后,会出来一个对话框,提示使用root用户执行这两个脚本


(图十三27)

再开个终端用root用户

[root@oracledb ~]# /opt/oracle/oraInventory/orainstRoot.sh

[root@oracledb ~]$ /opt/oracle/app/product/11.2.0/dbhome_1/root.sh

Running Oracle 11g root.sh script...

 

The following environment variables are set as:

ORACLE_OWNER= oracle

ORACLE_HOME= /opt/oracle/app/product/11.2.0/dbhome_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]: 点击回车

Copying dbhome to /usr/local/bin ...

Copying oraenv to /usr/local/bin ...

Copying coraenv to /usr/local/bin ...

 

Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

 

22再点击图形安装界面的OK。出现以下界面提示The installation of Oracle Database Control was successful .就安装成功了。


(图十三28)

第十五步:命令行进入数据库,畅爽oracle吧!

(注:如果在输入命令开启数据库的时候,提示bash:XXX command not found的时候很有可能是你没有在oracle用户下输入命令行,这时候用su oracle试一下,如果还是不行可以到/opt/oracle/app/product/11.2.0/dbhome_1/bin目录下,确认一下此命令是否存在!!!

[root@oracledb ~]# su – oracle

[oracle@oracledb ~]# lsnrctl start

开启监听服务。

查询监听状态:[oracle@oracledb ~]$ lsnrctl status

 

 

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 24-JAN-2020 17:52:51

Copyright (c) 1991, 2009, Oracle. All rights reserved.

TNS-01106: Listener using listener name LISTENER has already been started

 

登录

[oracle@oracledb ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 24 17:54:05 2020

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

启动实例

SQL> startup

ORA-01081: cannot start already-running ORACLE - shut it down first

 

#至此数据库已经开启,然后就可以操作数据库了!

SQL> select * from tab; #查看所有表

SQL> select name from v$datafile ; #查看数据库存放目录

SQL> show parameter service #查看服务名

SQL> select * from v$instance; #查看实例名

SQL> select name from v$database; #查看数据库名

SQL> select * from dba_users; #查看所有用户信息

SQL> select username,password from dba_users; #只查询用户和密码

SQL> select * from v$pwfile_users; #查看具有sysdba权限的用户

SQL> select * from dba_ustats; #查看当前用户信息

SQL> select * from user_sys_privs; #查看当前用户系统权限

SQL> select * from user_role_privs; #查看当前用户角色

SQL> select * from dba_sys_privs; #查看指定用户所具有的系统权限

SQL> select * from v$version; #查看oracle版本

SQL> select * from user_views; #查看视图信息

SQL> shutdown immediate #关闭数据库实例

SQL> startup

ORACLE instance started.

Total System Global Area 776646656 bytes

Fixed Size 2217384 bytes

Variable Size 478153304 bytes

Database Buffers 289406976 bytes

Redo Buffers 6868992 bytes

Database mounted.

Database opened.

 

转:https://blog.csdn.net/wangzhengshun/article/details/81364555

https://blog.csdn.net/fengqing5578/article/details/83545928



ping不通外网的问题也解决了。 是因为路由的问题。
看我另一篇文章:
《linux中ping 不通外网百度(添加默认路由)解决ping unknown host 》
http://blog.chinaunix.net/uid-25958655-id-5830333.html

阅读(884) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

xuebabybaby2020-03-25 09:54:59

xuebabybaby:上面这个网络自己也试过了。可以ping得通物理机和路由器,但是ping不通猫和外网。 不知道该怎么弄。
如果有大神知道的话,请留言告诉我。 谢谢

这个问题解决了。看文章最后一段

回复 | 举报

xuebabybaby2020-03-15 22:45:18

上面这个网络自己也试过了。可以ping得通物理机和路由器,但是ping不通猫和外网。 不知道该怎么弄。
如果有大神知道的话,请留言告诉我。 谢谢