一、介质
从同事那里得到安装介质 10201_database_linux32.zip。自己可以从Oracle网站上下载。
二、vmware 配置
vm版本采用 VMware® Workstation
7.1.1 build-282343
首先这里要特别说明一下,在win7下安装虚拟机最好将vmware-tools安装上,否则主机与虚拟机linux通信速度很慢,切换操作等都不方便。
看看硬件配置:
这里需要注意的是网卡选择桥接!!!
还有个需要注意的是,选择install from界面时,选择最后一个“I will install the operating system later.” 如果选择上两个,vm会热情的帮你完全自动安装系统,这有些热情过了,所以在都设置好后,在光驱位置指定linux iso介质文件就可以了。
虚拟机也没什么可讲的了,按照这个大致设置就行了。
三、 安装linux 虚拟机系统
介质也是从同事那里拿来的,iso 镜像。RHEL4.8-i386-AS-DVD.iso 不大2G多。
我安装语言选择的是英语,分区时将swap设置2G,为内存的2倍。
由于是自己实验,所以将防火墙及SELinux 都disabled。
最好在此设置IP地址,oracle要求主机必须有固定IP,否则在后面安装验证的时候会出警告。
最后软件包制定这选择完全安装。
这块需要说明一下,起初没有选择完全安装在安装vmtools的时候出错,无法安装,所以建议大家尽量完全安装(o(∩_∩)o 浪费点空间)。
当linux 安装完毕后重新启动。
安装vmtools:
启动后出现图形界面,然后选择vm --->install vmware tools ,这个时候会在/media/cdrom/ 目录下出现vmware tools的安装包。
切换root用户
su - root
mv /media/cdrom/VMwareTools-8.4.3-282343.tar.gz /usr/tmp
cd /usr/tmp
tar -zxvf VMwareTools-8.4.3-282343.tar.gz
cd vmware-tools-distrib
./vmware-install.pl --执行这个perl脚本安装tools工具,执行脚本过程中不断回车继续
四、安装oracle前的准备
1、可以用rpm -q 命令查询一些软件包是否安装完整,由于我是完全安装,所以这部我没进行,略过;
2、修改linux 内核参数
vi /etc/sysctl.conf 在此文件末尾添加如下内容:
# use for oracle
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
执行 sysctl -p 应用以上参数。
注意此步骤结束后我重新启动了linux!!!!
linux重新启动后 vi /etc/security/limits.conf 在文件末尾添加如下内容:
#use for oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
vi /etc/pam.d/login 在文件末尾添加如下内容:
session required /lib/security/pam_limits.so
session required pam_limits.so
3、设置主机名和ip
vi /ect/hosts
修改内容 :
192.168.1.88 test.com testdbserver
执行service network restart
执行hostname命令 主机名就变成了 test.com
4、创建安装oracle的用户及所属组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
mkdir -p /app/oracle /app/oradata /app/orabp
chown -R oracle:oinstall /app/oracle
chmod -R 775 /app/oracle
chown -R oracle:oinstall /app/oradata
chmod -R 775 /app/oradata
chown -R oracle:oinstall /app/orabp
chmod -R 775 /app/orabp
5、设置环境变量(oracle用户的.bash_profile文件)
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1; export ORACLE_HOME
ORACLE_SID=test; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
umask 022
#这个客户端字符集也许不正确,先这样凑合。
#export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
五、安装oracle
1、上传oracle安装介质并解压缩
使用oracle用户,将10201_database_linux32.zip 上传到oracle当前目录/home/oracle
同样 unzip 10201_database_linux32.zip 解压缩文件包到当前目录。
2、用oracle用户运行runinstaller文件 安装oracle
cd /home/oracle/database
unset LANG
./runInstaller
接着过会出现安装界面。
注意:如果在这个步骤,出现/tmp空间不足的错误,最好将oracle介质删除,重新上传重新解压,再安装。我这遇到过此错误!
3、具体安装过程
运行 runinstaller 出现安装界面;
红色部分为数据库安装目录(我的是/app/oracle/product/10.2.0/db_1),与之前设定oracle环境变量----ORACLE_HOME保持一致。
确认有无警告,如果网络设定为DHCP将会出现警告提示,可以忽略,不会影响安装。建议按照前面的安装文档,设定为固定IP。如果RPM包没有打全,也会提示。建议在处理完所有的警告之后,再继续安装。
建议先只安装数据库软件,后面再安装实例。
弹出这个窗口后,不能点ok,以Root用户执行列出的2个脚本。执行完后点击ok。
数据库软件安装完毕。
六、创建oracle实例
1、创建监听
输入netca命令,出现创建监听界面。
监听配置完毕。
2、创建oracle 实例
运行命令dbca 创建数据库实例
输入SID名称,这名称必须与前面oracle环境变量设定一样(我的是test)
这里因为是实验环境,所以把密码都设定为一样。
根据实际需要选择。这里选择了文件系统。ASM是oracle的高级技术,未来方向。建议初学者在学习环境使用文件系统。
因为是学习环境所以没有勾上Archive模式,在生产环境中oracle强烈建议选择Archive模式。
因为是学习环境,所以勾上Sample Schemas,里面包含一些可供学习的案例。
这里面的参数相当重要,共享内存管理oracle强烈建议设定为自动管理方式。
字符集参数相当重要,一旦设定,几乎很难更改。Oracle强烈建议使用AL32UTF8,有相当的兼容性。也可以根据实际情况设定字符集
点击exit,实例安装完毕。
测试安装结果
注意IP地址是linux操作系统的IP(我的是192.168.1.88)。请根据自己的实际情况测试。如果能够出现上面2张截图的画面。那就证明安装基本没有问题了。
解锁hr用户
解锁用户hr:
[oracle@oracle10g ~]$ sqlplus /nolog
SQL> conn /as sysdba
Connected.
SQL> show user
USER is "SYS"
SQL> desc dba_users
Name Null? Type
----------------------------------------- -------- --------
USERNAME NOT NULL VARCHAR2(30)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(30)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
EXTERNAL_NAME VARCHAR2(4000)
SQL> select username,account_status from dba_users;
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW OPEN
SYS OPEN
SYSTEM OPEN
DBSNMP OPEN
SYSMAN OPEN
IX EXPIRED & LOCKED
SH EXPIRED & LOCKED
DIP EXPIRED & LOCKED
OE EXPIRED & LOCKED
HR EXPIRED & LOCKED
SQL> alter user hr account unlock;(解锁hr用户)
User altered.
SQL> select username,account_status from dba_users;
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW OPEN
SYS OPEN
SYSTEM OPEN
DBSNMP OPEN
SYSMAN OPEN
HR EXPIRED
OUTLN EXPIRED & LOCKED
MDSYS EXPIRED & LOCKED
ORDSYS EXPIRED & LOCKED
EXFSYS EXPIRED & LOCKED
DMSYS EXPIRED & LOCKED
注意:
此时hr用户为过期状态,无法登陆。是因为还没有设定密码,下面将设定密码,而hr用户的状态将改变为open。
SQL> alter user hr identified by hr;(设定hr用户密码为hr)
User altered.
SQL> select username,account_status from dba_users;
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW OPEN
SYS OPEN
SYSTEM OPEN
DBSNMP OPEN
SYSMAN OPEN
HR OPEN
OUTLN EXPIRED & LOCKED
MDSYS EXPIRED & LOCKED
ORDSYS EXPIRED & LOCKED
EXFSYS EXPIRED & LOCKED
DMSYS EXPIRED & LOCKED
最后用hr用户登录,做创建表、插入数据、查询的测试。如果完成,则证明数据库安装没有问题了。
启动数据库
sqlplus /nolog
conn /as sysdba
startup
关闭数据库
sqlplus /nolog
conn /as sysdba
shutdown immediate
启动,停止监听
lsnrctl start
lsnrctl stop
启动企业管理器
emctl start dbconsole