当前位置:Gxlcms > 数据库问题 > oracle浅话深入之(3)—— oracle10g 11g 安装

oracle浅话深入之(3)—— oracle10g 11g 安装

时间:2021-07-01 10:21:17 帮助过:9人阅读

网盘中提供下载的是数据库的for linux_32位版本0201_database_linux32.zip,而11g12c下载可到官方网站http://www.oracle.com/index.html, 去下载版本Oracle Database 11g Release 2 :

linux_11gR2_database_1of2.zip

linux_11gR2_database_2of2.zip 

    技术分享

但10g已经不提供下载,注意哦,Release 2才是我们要的稳定版嘛。用BT下载,下载速度不是很稳定,你可以借助 FileZilla_3.3.3_win32-setup.exe,把下面2个文件传进 Linux 操作系统里面去,用FTP客户端,也可以不借助FTP软件而通过22远程端口连接:

 技术分享(选择ssh连接:)技术分享(选择22端口)

  • oracle文件解压:

使用 unzip 命令解压 刚才上传的2个文件, 命令格式如下:unzip 文件名

  • oracle环境配置:

准备工作,配置环境,检查相关的开发工具和一些包:检查命令格式如下:rpm -qa | grep 名字

binutils-2.17.50.0.6 ok

compat-libstdc++-33-3.2.3 ok

elfutils-libelf-0.125 ok

elfutils-libelf-devel-0.125 --

elfutils-libelf-devel-static-0.125 --

gcc-4.1.2 ok

gcc-c++-4.1.2 ok

glibc-2.5-24 ok

glibc-common-2.5 ok

glibc-devel-2.5 ok

glibc-headers-2.5 ok

kernel-headers-2.6.18 ok

ksh-20060214 ok

libaio-0.3.106 ok

libaio-devel-0.3.106  --

libgcc-4.1.2 ok

libgomp-4.1.2 ok

libstdc++-4.1.2  ok

libstdc++-devel-4.1.2 ok

make-3.81 ok

numactl-devel-0.9.8.i386 --

sysstat-7.0.2 --

unixODBC-2.2.11 --

unixODBC-devel-2.2.11 --

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

==========================================

从 CentOS-6.5-x86_64-bin-DVD.iso\CentOS 文件找到缺少的包, 并且上传到 linux 上去,

ls *.rpm

rpm -ivh *.rpm

==========================================

创建用户组:

groupadd oinstall

groupadd dba

mkdir -p /u01/oracle

 

 

 

 

添加一个oracle用户, 根目录是 /u01/oracle, 主的组是 oinstall 副的组是dba

useradd -g oinstall -G dba -d /u01/oracle oracle

cp /etc/skel/.bash_profile /u01/oracle

cp /etc/skel/.bashrc /u01/oracle

cp /etc/skel/.bash_logout /u01/oracl

 

 

 

 

 

为oracle用户设置密码 123456

passwd oracle

/]#ls -l

/]#chown -R oracle:oinstall u01

/]#ls -l

 

 

 

 

 

检查 nobody 是否存在 ,  id nobody

缺省存在的。如果不存在 # /usr/sbin/useradd -g nobody

==========================================

vi /etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

 

 

 

 

 

 

 

 

 

 

 

 

==========================================

vi /etc/security/limits.conf

oracle           soft    nproc   2047

oracle           hard    nproc   16384

oracle           soft    nofile  1024

oracle           hard    nofile  65536

 

 

 

 

 

==========================================

vi /etc/pam.d/login 

session    required     pam_limits.so

==========================================

  • oracle用户环境变量设置:

su - oracle 

pwd

ls -la

==========================================

vi .bash_profile

ORACLE_BASE=/u01

ORACLE_HOME=$ORACLE_BASE/oracle

ORACLE_SID=wilson

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

 

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

 

 

 

 

 

 

 

==========================================

mv database /u01/

cd /u01

ls -l

 chown -R oracle:oinstall database/

==========================================

重启一下系统,然后接着就开始安装了

  • oracle图形界面安装:

使用oracle账号 登陆图形界面 进行安装

 

运行终端 Terminal

 

cd /u01/database

 

./runInstaller

 

Installation Optiong

install database software only

 

Grid Options

Single instance database installation

 

Product Languages

English

 

Database Edition

Enterprise Edition (3.95)

 

Installation Location

Oracle Base: /u01

Software Loacation: /u01/oracle

 

提示: yes

 

Create Inventory

mkdir /oraInventory

 

chown -R oracle:oinstall oraInventory

 

Operating System Groups

Next 

 

Prerequis ite Checks

Ignore All

 

Summary

Finish

 

Install Product

安装完毕, 提示执行 2个脚本

 

/oraInventory/orainstRoot.sh

/u01/oracle/root.sh

直接按回车, 缺省值就可以

 

Finish

The installation of Oracle Database was successful

 

====================================

 

上面只是安装了软件, 数据库没有创建, 还有配置 监听器 Listener

 

netca

一直默认下一步 , 呵呵, 最后 Finish

 

ps -ef 可以查看Listener是否配置成功

 

-----------

dbca

一直 Next, Global Database Name 和 SID 都是输入 wilson

 

选择 User the Same.....All Accounts

 

密码: 123456

 

 

选择 Sample Schemas

 

Memory 内存分配,默认就可以了

Character Sets 选择 Use Unicode(AL32UTF8)

 

然后一直 Next , 到最后 Finish

 

弹出一个 Confirmation , 点击 OK 就可以了, 然后自动进行安装

 

安装到目录 /u01/oradata/wilson

   /u01/等等。。。 会发现多了很多文件。

 

--------------------

然后可以修改  vi /etc/inittab 让 centos5.5 linux 启动的时候 不进入 图形界面

直接进入 字符界面

 

id:5:initdefault: 修改成  id:3:initdefault:

 

保存退出, 然后重启系统

 

--------------------------------

用 oracle 用户 远程登录, 然后 

 

$ sqlplus /nolog

 

SQL> conn / as sysdba

 

Connected to an idle instance.

出现错误 

 

SQL> startup

 

[oracle@localhost ~]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.1.0 Production on Fri Jun 25 15:05:54 2010

 

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

 

SQL> conn / as sysdba

Connected.

SQL> create table testUser( id integer,name char(10));

 

Table created.

 

SQL> insert into testUser values(0,‘Jack‘);

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL> select * from testUser;

 

        ID NAME

---------- ----------

         0 Jack

 

关闭数据库

SQL>  shutdown immediate

 

SQL>  quit

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

对数据记录的操作(select,insert,update,delete) 

常用函数(count,max,min,avg,sum,decode,distinct)

CREATE TABLE xue_sheng( id integer, xing_ming varchar(25), nian_ling number); 

INSERT INTO xue_sheng VALUES(1,‘ZhanSan‘,24);

INSERT INTO xue_sheng VALUES(2,‘LiSi‘,23);

 

 

 

 

查询

SQL> SELECT * FROM xue_sheng;

SQL> SELECT xing_ming FROM xue_sheng;

 

 

 

插入数据

SQL> INSERT INTO xue_sheng VALUES(3,‘WangXiaoEr‘, 25);

SQL> INSERT INTO xue_sheng(id,nian_ling) VALUES(4 , 25);

 

 

 

查找order by desc(降序) 或者 asc(升序) 排序

SQL> SELECT * FROM xue_sheng ORDER BY nian_ling DESC; ASC

 

 

查找字段为空或者非空

SQL> SELECT * FROM xue_sheng where xing_ming IS NULL; IS NOT NULL

 

 

过滤重复字段

SQL> SELECT DISTINCT nian_ling FROM xue_sheng;

 

 

更新表字段

SQL> UPDATE xue_sheng SET xing_ming=‘ZhanWu‘;

SQL> UPDATE xue_sheng SET xing_ming=‘LiSi‘ where id=2;

 

 

 

SQL> DELETE FROM xue_sheng where id=4;

 

 

统计

SQL> SELECT COUNT(*) FROM xue_sheng;

 

 

求和

SQL> SELECT SUM( nian_ling ) FROM xue_sheng;

 

 

最大值

SQL> SELECT MAX( nian_ling ) FROM xue_sheng;

 

 

最小值

SQL> SELECT MIN( nian_ling ) FROM xue_sheng;

 

 

平均值

SQL> SELECT AVG( nian_ling ) FROM xue_sheng;

 

 

DECODE函数使用, 可以理解成是一个判断分类函数

SQL> SELECT SUM(DECODE(nian_ling,25,1,0)),SUM(DECODE(nian_ling,24,1,0)) FROM xue_sheng;

 

 

INSERT INTO xue_sheng(id,nian_ling) VALUES(5 , 25);

 

 

SQL> SELECT SUM(DECODE(nian_ling,25,1,0)) n_25,SUM(DECODE(nian_ling,24,1,0)) n_24 FROM xue_sheng;

 

 

需要注意 DELETE FROM 表名, 表示把表的数据全部清空

分组查询group by, 模糊查询/搜索like, 表连接join on, 子查询in() / not in()

DROP TABLE xue_sheng;

DROP TABLE ban_ji;

 

 

 

新建学生表: xue_sheng

CREATE TABLE xue_sheng( id integer, xing_ming varchar(25),xing_bie number, fen_shu number, b_id integer); 

 

INSERT INTO xue_sheng VALUES(1,‘ZhanSan‘,1,80,1);

INSERT INTO xue_sheng VALUES(2,‘LiSi‘,1,90,2);

INSERT INTO xue_sheng VALUES(3,‘ZhanHong‘,0,75,2);

INSERT INTO xue_sheng VALUES(4,‘ChenXiaoMing‘,1,85,1);

 

 

 

 

 

 

 

查询要求: 分组显示男女同学的总分。先把性别分组, 然后进行一个求和的统计

SELECT xing_bie,sum(fen_shu) FROM xue_sheng GROUP BY xing_bie;

 

 

模糊查询 或者 模糊查找,使用LIKE 关键字, 通用字符 ‘%‘

SELECT * FROM xue_sheng where xing_ming LIKE ‘Zhan%‘;

SELECT * FROM xue_sheng where xing_ming LIKE ‘%g‘;

SELECT * FROM xue_sheng where xing_ming LIKE ‘%a%‘;

 

 

 

 

新建一个班级表: ban_ji

CREATE TABLE ban_ji( id integer , ban_ji varchar(25));

INSERT INTO ban_ji VALUES(1,‘1-(1)‘);

INSERT INTO ban_ji VALUES(2,‘1-(2)‘);

INSERT INTO ban_ji VALUES(3,‘1-(3)‘);

SELECT id, ban_ji FROM ban_ji;

 

 

 

 

 

 

学生表, 班级表一起查询(表连接):

别名的使用

SELECT x.id, xing_ming,ban_ji FROM xue_sheng x, ban_ji b;

SELECT x.id, xing_ming,ban_ji FROM xue_sheng x, ban_ji b where x.b_id=b.id;

SELECT x.id, xing_ming,ban_ji FROM xue_sheng x JOIN ban_ji b ON x.b_id=b.id;

 

 

 

 

 

子查询 IN() 或者 NOT IN() ,又叫嵌套查询

SELECT * FROM xue_sheng WHERE b_id IN( 1,3 );

SELECT * FROM xue_sheng WHERE b_id=1 OR b_id=3;

 

 

 

SELECT * FROM xue_sheng WHERE b_id IN( SELECT id FROM ban_ji );

 

 

显示 在1-(2)班级的所有同学:

做一个分解步骤来理解, 

第一先步骤先执行 SELECT id FROM ban_ji where ban_ji=‘1-(2)‘;

第二步 , 在执行 SELECT * FROM xue_sheng WHERE b_id IN( 第一步的结果 );

SELECT * FROM xue_sheng WHERE b_id IN( SELECT id FROM ban_ji where ban_ji=‘1-(2)‘);

 

 

 

NOT IN() 的使用

SELECT * FROM xue_sheng WHERE b_id NOT IN( SELECT id FROM ban_ji where ban_ji=‘1-

(2)‘);

 

 

 

VIEW 的介绍(方便,安全,一致)和使用(创建,修改)

表和视图的区别,表是占用硬盘空间物理表,而视图可以理解为一个虚表,并不存储在硬盘上,不占用硬盘空间,实际上就是一个查询语句,方便查询。对视图里面的数据操作(增 删 改) 其实就是对真实的表 增 删 改, 它们始终保持一致性。

 

 

 

哪为什么还需要视图 ?

视图可以理解成一个封装过的表, 例如不让用户 清楚知道表的某些字段信息,比较安全

人气教程排行