Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)

大纲

 

1. 安装环境及Oracle11g安装包。
2. 创建用户组及用户。
3. 安装Oracle必需的包,并检查是否仍有缺少。
4. 修改操作系统核心参数。
5. 配置oracle用户的环境变量,为第6步做准备。
6. 解压Oracle安装包,进行安装。
7. 启动Oracle服务与监听。
8. 创建表空间、用户、表。

1. 环境及Oracle11g安装包

1.1 Linux系统:rhel-server-6.8-x86_64(桌面版)
1.2 Oracle11g安装包:linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip

2. 创建用户组及用户。(root权限下)

2.1 创建用户组,输入命令:

groupadd oinstall 
groupadd dba

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

useradd -g oinstall -g dba -m oracle
passwd oracle

3. 安装Oracle必需的包,并安装缺少的包。(root权限下)

3.1 以下命令执行顺序不可颠倒!安装包可从Linux镜像文件中的Packages目录下获取,版本号可能不一致。

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

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第1张图片

3.2 安装完成之后,执行命令检查是否所需包已全部安装

rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第2张图片

3.3 检查之后发现还有4个包没有安装,所以从Linux镜像文件中的Packages目录下获取进行安装,并再次进行检查。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第3张图片

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第4张图片

3.4 发现还有一个“compat-libstdc”包没有(其实还有一个elfutils-libelf-devel-static包显示没有,但是我没有在iso文件中找到,最后Oracle也安装成功了,特此说明),但是我确认已经安装了,最后发现原因是检查命令不对,命令应该为:

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第5张图片

3.5 另附查询指定包是否存在的命令:

rpm -qa | grep "compat-libstdc"

4. 修改操作系统核心参数。(root权限下)

4.1 vi /etc/security/limits.conf (资源限制配置文件),新增如下代码:

oracle soft nproc  2047
oracle hard nproc  16384
oracle soft nofile 1024
oracle hard nofile 65536

4.2 vi /etc/pam.d/login (登陆配置文件),新增如下代码:

session    required     pam_limits.so

4.3 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

5. 配置oracle用户的环境变量,为第6步做准备。(oracle用户下)

5.1 创建oracle相关目录

mkdir /home/oracle/app
mkdir /home/oracle/app/oracle
mkdir /home/oracle/app/oradata
mkdir /home/oracle/app/oracle/product

5.2 vi .bash_profile(用户环境变量文件),新增如下内容

export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

6. 解压Oracle安装包,进行安装。(oracle用户下)

6.0 运行Oracle安装执行程序:

./runInstaller

6.1 第1步,用来配置更新以及技术支持的,把勾去掉直接下一步就行。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第6张图片

有警告,点击“yes”即可。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第7张图片

6.2 第2步,这三个选项分别表示:①创建并配置一个新数据库,适用于新安装数据库的用户;②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的;③升级已有数据库,适用于将老数据库升级成新数据库的用户。这里我们选择第1个选项:

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第8张图片

6.3 第3步,配置桌面版还是服务器版,桌面版是最小化配置。这里我们选择服务器版的配置。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第9张图片

6.4 第4步,分布式网格配置,这里我们选择单实例服务器配置。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第10张图片

6.5 第5步,分为典型安装和高级安装,这里我们选择高级安装。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第11张图片

6.6 第6步,选择语言,这里我们选择英文和简体中文。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第12张图片

6.7 第7步,选择数据库版本,这里我们选择企业版。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第13张图片

6.8 第8步,选择安装路径,这个已经在上面的5.2配置oracle用户环境变量中配置过了,直接下一步。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第14张图片

6.9 第9步,这个Inventory Directory目录用于记录Oracle的清单信息的,清单信息中包括Oracle的安装路径等信息。这里我们选择默认的路径,即oracle用户家目录下的一个oraInventory目录。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第15张图片

6.10 第10步,用于创建数据库的类型:通用/事务处理(专为一般用途或交互较多的应用程序而设计);数据仓库(对数据存储应用程序进行优化)。这里我们选择通用。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第16张图片

6.11 第11步,配置数据库名和Oracle服务ID号,这里我们使用默认的orcl。(注意数据库名一定要记住,以后进行程序开发会用到这个数据库名)

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第17张图片

6.12 第12步,配置字符集,将字符集设置成UTF-8,其他的不用修改。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第18张图片

6.13 第13步,配置系统信息邮件通知的,可以跳过,直接下一步。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第19张图片

6.14 第14步,配置数据存储的(数据文件存储位置),由于在上面“5. 配置oracle用户的环境变量”中已经配置好了,直接下一步即可。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第20张图片

6.15 第15步,配置数据备份,这里我们只是用来学习不需要自动备份,实际生产肯定是要做备份的。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第21张图片

6.16 第16步,配置账号密码,这里我将所有的默认用户统一使用相同的密码。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第22张图片

6.17 第17步,配置数据库用户组的,由于在上面“2. 创建用户组及用户”中已经配置好了,直接下一步即可。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第23张图片

6.18 第18步,会检测交换分区大小、内核参数以及依赖包是否安装。只要前面准备工作都完成了,下面的错误可以直接忽略(比如它要求的软件包,我们的版本实际上比它要求的还高,所以这里的报错没必要理会它)。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第24张图片

6.19 第19步,对前面所有配置的一个总结,我们可以直接点击完成。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第25张图片

6.20 第20步,最终的配置信息确认。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第26张图片

6.21 第21步,这里提示需要使用root用户手动运行两个脚本,参考第22步,执行脚本成功之后返回页面点击OK。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第27张图片

6.22 第22步,root权限下执行两个脚本,执行脚本成功之后返回安装页面点击OK。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第28张图片

6.23 第23步,提示oracle安装成功。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第29张图片

6.24 第24步,简单的验证:在oracle用户下,进入sqlplus,使用sys as sysdba 登录,解锁scott用户,查询表数据。

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第30张图片

7. 启动Oracle服务与监听。(oracle用户下)

7.1 启Oracle服务:

sqlplus /nolog
conn sys/123456 as sysdba
shutdown immediate
startup

7.2 启动监听(才能使用数据库管理工具连接):

lsnrctl status 	(查看监听状态)
lsnrctl stop	(关闭监听)
lsnrctl start	(启动监听)

7.3 遇到的问题:本地连接虚拟机中Oracle数据库失败。

原因之一:本地telnet虚拟机Oracle地址不通,是防火墙没有关闭1521端口,可使用如下命令将1521端口设置为白名单(),编辑防火墙配置文件:

sudo vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT

一定要将上述代码写在reject之前,不然会不起作用的

Linux安装Oracle11g数据库,并创建数据库表空间、用户及表(VMware)_第31张图片

文件修改完成之后,执行如下命令,生效防火墙:

sudo service iptables restart
sudo service iptables save
sudo iptables -L -n

8. 创建表空间、用户、表

8.1 创建表空间data_space_hhh,指定存储文件及路径/home/oracle/app/oradata/orcl/usersHhh01.dbf,表空间大小360M(sys用户下)

create tablespace data_space_hhh datafile '/home/oracle/app/oradata/orcl/usersHhh01.dbf' size 360M;

8.2 创建用户hhh并指定默认表空间data_space_hhh(sys用户下)

create user hhh identified by tiger default tablespace data_space_hhh;

8.3 赋予普通用户权限给用户hhh(sys用户下)

grant connect,resource to hhh;

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。

8.4 创建student表(hhh用户下)

conn hhh/tiger
create table student(
	name varchar2(16) primary key,
	sex  number(1),
	age  number(3),
	class number(2),
	address varchar2(64)
)tablespace data_space_hhh;

8.5 创建表成功之后,别忘了执行提交命令

commit;

8.6 相关查询、删除语句

--查看-表空间文件路径
select name from v$datafile;

--查看-表空间大小
select tablespace_name, file_id, sum(bytes)/1024/1024"(M)" from dba_data_files group by tablespace_name, file_id
ORDER BY file_id;

--查看-你能管理的所有用户
select * from all_users order by CREATED;

--查看-数据库里面所有用户(dba权限)
select USERNAME from dba_users;

--查看-当前登录用户的所有表
select table_name from user_tables;

--删除-非空表空间data_space_hhh,包含物理文件
drop tablespace data_space_hhh including contents and datafiles;

--删除-这个用户hhh以及这个用户下的所有对象
drop user hhh cascade;

--修改-hhh用户密码为123456
alter user hhh identified by 123456

参考资料

1. Linux系统安装Oracle11g完整安装图文教程

2. Linux下安装oracle11g

3. Linux上安装Oracle的辛酸史

4. Linux老是提示compat-libstdc++ is not installed的原因

5. Oracle权限管理详解

6. 用sqlplus为oracle创建用户和表空间

7. drop user和drop user cascade的区别

8. Oracle创建表空间和表

9. oracle 删除表空间及数据文件方法

10. oracle查询当前用户名下所有表

最后,谢谢各位读者的耐心阅读,如有语句不通顺或者不准确的地方,大家也可以提提改善的意见!(^__^)

你可能感兴趣的:(数据库)