ORACLE10G在Linux下安装过程
1、建立ORACLE用户,用ORACLE用户安装数据库软件。
可以在系统界面增加:“oracle”用户,再建用户组“dba”,把“dba”做为用户“oracle”附加用户组,“oracle”为默认用户组。也可以用命令方式进行增加,命令如下:
#groupadd dba//创建组用户
#groupadd oracle//创建组用户
#useradd -g oracle -G dba oracle//创建用户oracle,并设定默认用户组为oracle,附加用户组为dba
#passwd oracle//设定oracle用户的密码
2、增加ORACLE用户,该用户组必须是DBA。用ORACLE用户安装数据库软件。
3、在ROOT用户下,设置内核参数。
修改/etc/sysctl.conf这个文件,加入以下语句:
kernel.shmmax=1073741824(1G,2G:2147483648)
kernel.shmmni=4096
kernel.shmall=2097152
kernel.sem= 250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
4、在ROOT帐户下,设置ORACLE对文件的要求。
编辑文件:/etc/security/limits.conf文件加入以下语句:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
5、在ORACLE帐户,设置ORACLE环境。
/oracle目录下
安装路径为:/oracle/product/10g。
数据库SID为:ydqx。
编辑文件:ORACLE用户目录下,.bash_profile文件,添加内容如下:
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/product/10g
export ORACLE_SID=ydqx
export ORACLE_OWNER=oracle
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/lib
export LANG=en_US
如果在中文界面下安装,可以修改该配置文件参数。(3个)
export NLS_LANG=american_america.zhs16cgb231280;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=American_America.ZHS16CGB231280
LC_ALL=zh_CN.GB18030
LANG=zh_CN.GB18030
NLS_LANG="simplified chinese_china.ZHS16GBK;export NLS_LANG
6、重新启动机器,让所有参数生效。
7、进行数据库软件安装。
在oracle用户环境下,在oracle10G安装目录下,执行命令:./runInstaller启动按装,在弹出界面中进行如下操作。
A、在UNIX Group Name输入组名"dba",并且勾除“Create Starter Database(additional 720MB)”选项。确定信息后,点击“next”进入下一个界面。
B、在新界面,把“Enter the full path of the invertory directory”输入框中改为“/oracle”,在“Specify Operationg System group name”提示框中是“oracle”不变。确定后进入下一个界面。
C、根据界面提示进行确定,直到出现弹出界面,提示用“root”用户执行以下两个命令:“/oracle/orainstRoot.sh”与“/oracle/product/10G/root.sh”。进入命令行窗口,用root用户执行以下两个命令。
#/tmp/orainstRoot.sh
#/oracle/product/10G/root.sh
执行完成后,继续确认,直到安装结束。
D、在安装结束界面,提示SQLPLUS访问方式。
http://localhost.localdomain:5560/isqlplus
http://localhost.locldomain:5560/isqlplus/dba//这个是iSQL*Plus DBA URL访问方式
8、创建数据库SID。
A、执行ORACLE安装目录(/oracle/produtc/10G/bin)下执行dbca命令。
B、在安装过程中选择数据库创建模板时,选择“General Purpose”,共有四个选项:
“Custom Database”//自定制数据库
“Data Warehouse”//数据仓库:针对大量数据的数据库进行优化
“General Purpose”//通用数据库,olap和oltp两者兼顾
“Transaction Processiong”//联机事物处理,oltp
C、在进行“storage mechanism”选择时,选择“File System”。
D、在进行字符集选择时,“选择ZHS16GBK”选项。其它不变。
E、在安装结束界面,提示企业管理器访问方式为:http://localhost.localdomain:1158/em
9、启动ORACLE数据库监听。
如果出现错误,进行以下改动:如ORACLE SID是“orcl”,则把文件/etc/oratab中数据从:
“orcl:/oracle/product/10G:N”改为“orcl:/oracle/product/10G:Y”。否则dbstart等命令不好使。
在ORACLE安装BIN目录下,启动监听(lsnrctl start),关闭监听(lsnrctl stop)。
10、启动数据库。
在ORACLE安装BIN目录下,启动数据库(dbstart)。
11、启动企业管理器工具。
在启动oracle企业管理器服务后,访问会出现按钮乱码。所以在启动前可以先进行如下操作,以避免有乱码现象。
(访问方式:http://IP:1158/em/)
把以下目录下font.properties文件用同目录下font.properties.zh_CN.Redhat替换,替换前做好备份。
$ORACLE_HOME/javavm/lib/ojvmfonts/font.properties
$ORACLE_HOME/jre/1.4.2/lib/font.properties
$ORACLE_HOME/jdk/jre/lib/font.properties
同时删除以下目录下gif文件。
企业管理器显示界面图片:
$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/
isqlplus显示界面图片:
$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/zhs/
启动企业管理器命令:emctl start dbconsole
关闭企业管理器命令:emctl stop dbconsole
启动数据库实例,分为两步:
第一步,启动监听
第二步,启动数据库实例
一、如何启动数据库实例
1.进入到sqlplus启动实例
[oracle@redhat ~]$ su - oracle --“切换到oracle用户”
Password:
[oracle@redhat ~]$ lsnrctl start --“打开监听”
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:06:40
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /home/oracle/product/10g/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /home/oracle/product/10g/network/admin/listener.ora
Log messages written to /home/oracle/product/10g/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 14-OCT-2009 19:06:40
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/product/10g/network/admin/listener.ora
Listener Log File /home/oracle/product/10g/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@redhat ~]$ sqlplus /nolog --“进入到sqlplus”
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Oct 14 19:06:45 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba --“连接到sysdba”
Connected to an idle instance.
SQL> startup --“启动数据库实例”
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218968 bytes
Variable Size 88082024 bytes
Database Buffers 188743680 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
SQL> shutdown immediate --“关闭数据库实例”
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@redhat ~]$ lsnrctl stop --“关闭监听”
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:08:06
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
The command completed successfully
2.用dbstart和dbshut启动和关闭数据库实例
先启动监听 lsnrctl start
启动实例 dbstart
使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME
原因:
dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:用vi编辑dbstart,ORACLE_HOME_LISTNER=$1,修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME
然后保存退出,此时再运行dbstart,已经不报错了,但是没有任何反应,ps一下进程,没有oracle的进程,说明oracle实例没有正常启动。
此时的原因是在/etc/oratab的设置问题,我们vi一下,发现
zgz:/home/oracle/product/10g:N
最后设置的是"N"(我的环境中只有一个实例,因此只有一行配置语句),我们需要把“N”修改为“Y”。
以上的工作做好之后,dbstart就可以正常使用了:
[oracle@redhat bin]$ lsnrctl start --“启动监听”
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:44:53
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /home/oracle/product/10g/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /home/oracle/product/10g/network/admin/listener.ora
Log messages written to /home/oracle/product/10g/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 14-OCT-2009 19:44:53
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/product/10g/network/admin/listener.ora
Listener Log File /home/oracle/product/10g/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@redhat bin]$ dbstart --“启动数据库实例”
Processing Database instance "zgz": log file /home/oracle/product/10g/startup.log
[oracle@redhat bin]$ dbshut --“关闭数据库实例”
[oracle@redhat bin]$ lsnrctl stop --“关闭监听”
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:45:33
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
The command completed successfully
二、如何使数据库实例和linux系统一起启动
在/etc/rc.d/rc.local中加入如下语句即可实现同系统启动实例:
su oracle -lc "lsnrctl start"
su oracle -lc dbstart
本地没有装Oracle、PL/SQL远程访问Oracle数据库、配置
由于Oracle的庞大、有时候我们需要在只安装Oracle客户端如PLSQL、TOAD等的情况下去连接远程数据库、可是没有安装Oracle就没有一切的配置文件去支持。最后终于发现一个有效的方法、Oracle的Instant client工具包可以很好的解决这个问题、而且小而方便。
1、首先到Oracle官方下载Instant Client:
http://www.oracle.com/us/solutions/index-097480.html
解压之后的文件夹叫:instantclient_11_2、可以放在本地磁盘任意目录下、例如:C:/instantclient_11_2
2、在C:/instantclient_11_2目录下新建目录network、在network目录下再建admin目录。从服务器的$ORACLE_HOME/network/admin/下拷贝tnsnames.ora文件到该目录下
3、添加一个环境变量、名为TNS_ADMIN、值为tnsnames.ora文件所在路径、
4、下载并安装PLSQL配置应用
配置tools->preferences->connection
Oracle Home
C:/instantclient_11_2
OCL library
C:/instantclient_11_2/oci.dll
配置完成后关闭PL/SQL、再重启。
主机名就会出现在PL/SQL的列表里、输入用户名密码、就可以远程登陆Oracle数据库了。。
当我们连接成功后有时候查询出来的数据会出现乱码的问题、这是因为本地的编码和服务器端编码不一致、这时候我们可以通过SQL语句:
select userenv('language') from dual;
查询出服务器端的编码、如我自己查询的结果为
USERENV('LANGUAGE')
AMERICAN_AMERICA.ZHS16GBK
我们就需要添加一个环境变量、值为:AMERICAN_AMERICA.ZHS16GBK
然后重启PLSQL就不会再有乱码问题了