1,安装虚拟机 VMware (本地使用6.5绿化版版)
--------------------------------------------------------
2,使用CentOS-5.4版本linux CentOS5.4 i386 32位 --- Linux x86
--------------------------------------------------------
3,下载Oracle Database 11g Release 2版(分开的两个文件 大小2G oracle官网下载)
借助软件 FileZilla_3.3.3_win32-setup.exe 把oracle文件传输到linux上去
linux_11gR2_database_1of2.zip linux_11gR2_database_2of2.zip
解压上两个文件 先解压1 后2 -->自动到database文件夹
借助 putty.exe 远程连接服务器
--------------------------------------------------------
4,linux的安装环境配置(oracle安装所必须的包)使用客户端连接linux服务器
oracle官方提供的安装文档 http ://download.oracle.com/docs/cd/E11882_01/install.112/e10857/toc.htm
<1 检查相关的开发工具和一些包 (版本并不一定全部匹配 高一点就行了)
从linux安装文件 CentOS-5.5-i386-bin-DVD.iso/CentOS 文件找到缺少的包, 并且上传到 linux 上去
查询命令 # 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 --
<2 上传到linux后 进行安装
# rpm -ivh *.rpm
<3 创建Oracle用户及用户组 ************ (深入了解的话 查询文档 或linux用户管理)
# groupadd oinstall
# groupadd dba
添加一个oracle用户, 根目录是 /u01/oracle, 主的组是 oinstall 副的组是dba
# mkdir -p /u01/oracle
# useradd -g oinstall -G dba -d /u01/oracle oracle
出现提示 不用管
useradd: warning: the home directory already exists. Not copying any file from skel directory into it.
创建后此目录/u01/oracle是空目录 需要把下面的默认文件手动拷过去
# cp /etc/skel/.bash_profile /u01/oracle
# cp /etc/skel/.bashrc /u01/oracle
# cp /etc/skel/.bash_logout /u01/oracle
为oracle 用户设置密码: oracle # passwd oracle
为oracle 用户设置权限
# cd /
/]# ls -l
/]# chown -R oracle:oinstall u01
/]# ls -l
检查 nobody 是否存在: # id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody) You have new mail in /var/spool/mail/root
缺省存在的。如果不存在 # /usr/sbin/useradd -g nobody
<4 修改linux配置文件:
# 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
<5 设置oracle 用户环境变量 # su - oracle (用oracle用户登录)
$ pwd 查看用户路径是 /u01/oracle
$ ls -al 查看3个用户文件 .bash_logout .bashrc .bash_profile(编辑它 加入环境变量)
$ vi .bash_profile
ORACLE_BASE=/u01
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=wilson
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin (加入 $ORACLE_HOME/bin:)
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH (加入 ORACLE_BASE ORACLE_HOME ORACLE_SID )
<6 移动配置权限 database 到 oracle 用户文件夹 (切换root用户)
# mv /root/database /u01/
配置权限 /u01/database
# chown -R oracle:oinstall /u01/database
<7 重启系统,开始安装Oracle
# shutdown -r now
# exit
--------------------------------------------------------
5, 图形界面安装oracle
<1 使用oracle用户登录
$ /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 (值是配置环境变量配置的 oracle自动检测出来了)
提示: yes
Create Inventory
# mkdir /oraInventory (用root用户登录 创建一个新用户 并设置权限 然后才可以进行此步安装)
# chown -R oracle:oinstall /oraInventory
Operating System Groups
Next
Prerequis ite Checks
Ignore All (检测到机器配置 如果内存或交换分区不足 选择 Ignore All)
Summary
Finish
Install Product
/oraInventory/orainstRoot.sh (安装过程中要执行2个脚本文件 直接拷贝到命令行中)
/u01/oracle/root.sh (直接按回车, 缺省值就可以)
Finish
The installation of Oracle Database was successful
<2 软件安装完成, 下一步创建数据库 / 配置监听器 Listener
$ netca
一直默认下一步 , 呵呵, 最后 Finish
$ ps -ef | grep
查看Listener是否配置成功 (如果使用root创建 是错误的)
$dbca
一直 Next 使用默认,
到Global Database Name 和 SID 都是输入 wilson(此用户名输入后 后面的配置和登录库名都一样)
创建密码:选择 User the Same.....All Accounts 密码123456
选择 Sample Schemas
Memory 内存分配,默认就可以了 Character Sets 选择 Use Unicode(AL32UTF8)
然后一直 Next , 到最后 Finish (检查 /u01/* 所有文件夹的权限为 # chown -R oracle:oinstall) ****dbca的库好像就在此文件夹下cfgtoollogs
弹出一个 Confirmation , 点击 OK 就可以了, 然后自动进行安装
安装到目录 /u01/oradata/wilson
/u01/等等。。。 会发现多了很多文件。
<3 //**(centos5.5 linux 启动的时候 不进入 图形界面)**/
# vi /etc/inittab
id:5:initdefault: 修改成 id:3:initdefault:
保存退出, 然后重启系统
<4 远程登录 oracle 用户 进入sql命令行
$ sqlplus system/manager as sysdba 或者 $sqlplus /nolog SQL> conn / as sysdba
SQL> startup nomount (启动到mount状态)
SQL> alter database mount;
Database altered.
SQL> alter database open;
alter database open
$ lsnrctl start
测试增删改查
SQL> create table testUser( id integer,name char(10));
Table created.
SQL> insert into testUser values(0,'Jack');
1 row created.
SQL> commit; (//*********为什么commit)
Commit complete.
SQL> select * from testUser;
关闭数据库
SQL> shutdown immediate
SQL> quit
<5 启动监听 (如果为启动成功就需要配置)
# vi /etc/hosts 添加监听主机的ip和端口
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
::1 localhost.localdomain localhost
192.168.0.6 localhost.localdomain localhost
192.168.0.110 localhost.localdomain localhost
保存 重启系统
如果出现The listener supports no services信息表示没有服务(需要动态注册服务)。想到是不是要重启一下数据库服务。登陆sqlplus,关闭数据库,提示数据库没有启动。
原来问题出在这里,而不是tns没有启动监听的问题!
$ sqlplus "/as sysdba"
SQL> shutdown immediate;
SQL> startup
SQL> exit
$ lsnrctl services
LSNRCTL for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production on 10-MAY-2
008 09:28:13
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
Services Summary...
Service "SISDB" has 1 instance(s).
Instance "SISDB", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "SISDBXDB" has 1 instance(s).
Instance "SISDB", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1002 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=i2arptest)(PORT=32793))
The command completed successfully
发现重启instance后,instance重新注册lnsr,在lsnrctl service也看到了其对外已经重新提供了服务。
注:如果不重启instance,将有pmon进行动态注册。
另外,如果要实现动态注册,我们在对初始化文件还有有一定的设置,必须设置instance_name和service_names参数(我试了一下,其实只要设置了service_names就能实现动态注册的,并且用这个服务名对外提供服务)。
修改初始化文件,先全部取消instanace_name和service_names,然后逐个设定测试:
(1)先设置instance_name
sys@ORALOCAL(192.168.0.22)> alter system set instance_name='oralocal' scope=spfile;
已用时间: 00: 00: 00.01
sys@ORALOCAL(192.168.0.22)> startup force;
ORACLE 例程已经启动。
Total System Global Area 133765984 bytes
Fixed Size 453472 bytes
Variable Size 79691776 bytes
Database Buffers 50331648 bytes
Redo Buffers 3289088 bytes
数据库装载完毕。
数据库已经打开。
sys@ORALOCAL(192.168.0.22)> show parameter instance_name
sys@ORALOCAL(192.168.0.22)> show parameter service_names
6,
system/manager 没有sysdba和sysoper权限所以登陆的时候会提示权限不足的错误
sys是系统用户,有最高的权限,所以,以那种身份登陆都可以的
在服务端sys用户下执行
SQL> grant sysdba to system;
Grant succeeded.
SQL> grant sysoper to system;
但使用system/manager以Normal登录时,正常。
使用sys/change_on_install已这三个身份登录也正常,不知大家有没有遇到过
(1)conn sys/sys as sysdba; //以DBA的身份登录 解锁 scott或System
ORA-28000: the account is locked
SQL> alter user scott account unlock;
-------------------------------------------------
在xp下使用必须安装客户端
-------------------------------------------------
使用pl/sql连接如果出现字符集问题: Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. Character set conversion may cause unexpected results.
Note: you can set the client character set through the NLS_LANG environment variable or the NLS_LANG registry key in HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0.
regedit 找到
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1的变量NLS_LANG的值 (如果是9i 同路径下的 NLS_LANG 变量)
SIMPLIFIED CHINESE_CHINA.ZHS16GBK 改变成以下的值 SIMPLIFIED CHINESE_CHINA.AL32UTF8(服务端编码)