操作的环境:
- Cent-OS 6.5
- jdk-8u101-linux-x64.gz
- Eclipse 4.2 版本 代号Luna(eclipse-jee-luna-SR2-linux-gtx-x86_64.tar.gz)
- Oracle 11gR2
操作的顺序:
本次安装的软件是在先安装好的CentOs-6.5的VM-WorkStation下的,个人建议操作的时候尽量root操作。
- 先下载好对应的linux版本的jdk|Eclipse|Oracle
- 解压jdk到相对应的路径下,配置环境变量
- 解压Eclipse到相对应的路径下,创建快捷方式
- 这一步最重要:先创建一个账户,在该用户创建相对应的文件夹,配置相关的文件,然后解压Oracle到刚刚创建的目录下.
一、安装Jdk
1.下载好jdk
2.创建目录 mkdir /usr/java
然后进入桌面,cp jdk-8u101-linux-64.gz /usr/java
表示把文件copy到/usr/java下。
3.解压,进入/usr/java目录下,tar -zxvf jdk-8u101-linux-x64.gz
4.配置:vi etc/profile
在这文件加入(纯手打):
export JAVA_HOME=/home/ly/usr/java/jdk1.8.0_101
export PATH=JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
5.测试:
以上是安装JDK1.8
二、安装Eclipse
1.参考解压jdk方式,解压Eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz 到/usr/java 目录下
2.创建快捷方式:(1)使用命令创建(自己上网找),(2)右击桌面->创建启动器->浏览 usr/java/eclipse/eclipse,图标也在那目录
3.打开eclipse,写个HelloWorld.java吧
三、安装Oracle
请参考本博主亲测成功
以下Oracle安装说明是
另外一个
所以读者可以自己选择我亲测的连接,或者网上找
1、升级软件包
yum -y install binutils “compat-libstdc++” elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++ make “pdksh” sysstat unixODBC unixODBC-devel
yum -y install compat-libstdc++-33 ksh
yum -y install libio.i686 glibc.i686 compat-libstdc++-33.i686 libaio-devel.i686 libgcc.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686
2、添加oracle用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
3、更改内核参数,在/etc/sysctl.conf后面增加如下参数
#Modify for Oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
#kernel.shmmax = 2147483648
kernel.shmmax = 1073741824
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
/sbin/sysctl -p 确认更改
4、更改oracle用户的shell 限制
cat /etc/security/limits.conf
vi /etc/security/limits.conf
在/etc/security/limits.conf后面增加如下行
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
5、在/etc/pam.d/login 后面增加如下行
session required pam_limits.so
6、在 /etc/profile 后面增加如下行
#lidt update
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
7、创建Oracle 安装目录
oracle 安装在了/opt/oracle/
Inventory 目录在?/opt/oraInventory/
mkdir -p /opt/oracle/
ll /opt/
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle/
mkdir -p /opt/oraInventory/
chown -R oracle:oinstall /opt/oraInventory/
chmod -R 775 /opt/oraInventory/
8、更改Oracle 用户的 .bash_profile
以Oracle 用户登录,运行
#lidt add
umask 022
ORACLE_BASH=/opt/oracle
ORACLE_SID=lidt;
export ORACLE_BASH ORACLE_SID
#unset ORACLE_HOME
#unset TNS_ADMIN
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
export ORACLE_HOME
#ORACLE_TERM=xterm;
#export ORACLE_TERM
PATH=$ORACLE_HOME/bin:$PATH;
export PATH
更改完成后,退出oracle用户,重新登录,用以下命令检查是否更改成功
umask
env | more
至此,环境配置完毕,可以开始安装Oracle了
9、用root用户登录,执行
xhost +
10、oracle用户登录先把两个下载的zip文件,复制oracle目录下,用unzip命令把zip的内容解接压缩
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
11、开始安装
cd database/
./runInstaller
12、安装过程中check说我的ksh没有装,忽略后继续安装
13、执行2个root 的的脚本,https:///localhost:11158/em便可访问了
14、#设置防火墙,远程可访问
vi /etc/sysconfig/iptables
添加如下两行
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1158 -j ACCEPT
重启防火墙
/etc/init.d/iptables restart
如果要关闭防火墙
/etc/init.d/iptables stop
关闭SELINUX
vi /etc/selinux/config
SELINUX=disabled
15、启动em命令:emctl start dbconsole
关闭em命令emctl stop dbconsole
16、修复emctl不能启动
[oracle@BoxCentOS6 ~]$ emctl start dbconsole
OC4J Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_BoxCentOS6_lidt not found.
[oracle@BoxCentOS6 ~]$ mv /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_localhost_lidt/ /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_BoxCentOS6_lidt
[oracle@BoxCentOS6 ~]$ emctl start dbconsole
EM Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/BoxCentOS6_lidt not found.
[oracle@BoxCentOS6 ~]$ mv /opt/oracle/product/11.2.0/dbhome_1/localhost_lidt/ /opt/oracle/product/11.2.0/dbhome_1/BoxCentOS6_lidt
[oracle@BoxCentOS6 ~]$ emctl start dbconsole
如果还不能启动,就要修复
给用户解锁、设置密码
alter user dbsnmp account unlock;
alter user dbsnmp identified by dbsnmp;
alter user sysman account unlock;
alter user sysman identified by sysman;
请先开启数据库
[oracle@BoxCentOS6 ~]$ emca -config dbcontrol db -repos recreate
EMCA 开始于 2011-11-4 10:52:14
EM Configuration Assistant, 11.2.0.0.2 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
以上安装Oracle是按网上相关人员的:http://blog.csdn.net/lidongtang/article/details/6935979
进入 conn scott/tiger,查询emp
四、Eclipse使用JDBC连接Oracle
1.下载 ojdbc14.jar ,放到Eclipse,
2.编写代码:
ConnectOracle .java
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectOracle {
private static Connection conn = null;
private static Statement stmt = null;
private static ResultSet rs = null;
private String user = "scott";
// private String user = "sys as sysdba";
private String password = "tiger";
private String className = "oracle.jdbc.driver.OracleDriver";
private String url = "jdbc:oracle:thin:@localhost:1521:orcl";
public ConnectOracle() {
try {
Class.forName(className);
System.out.println("加载数据库驱动成功!");
} catch (ClassNotFoundException e) {
System.out.println("加载数据库驱动失败!");
e.printStackTrace();
}
}
/** 创建数据库连接 */
public Connection getCon() {
try {
conn = DriverManager.getConnection(url, user, password);
System.out.println("创建数据库连接成功!");
} catch (SQLException e) {
System.out.print(conn);
System.out.println("创建数据库连接失败!");
conn = null;
e.printStackTrace();
}
return conn;
}
public void closed() {
try {
if (conn != null)
conn.close();
if (stmt != null)
stmt.close();
if (rs != null)
rs.close();
} catch (SQLException e) {
System.out.println("关闭con对象失败!");
e.printStackTrace();
}
}
public static void main(String[] args) {
ConnectOracle c = new ConnectOracle();
conn = c.getCon();
String sql = "select * from emp";
try {
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
System.out.println("学号\t姓名");
while (rs.next()) {
System.out.println(rs.getString(1) + "\t" + rs.getString(2)
+ "\t" + rs.getString(3) + "\t" + rs.getString(4)
+ "\t" + rs.getString(5));// 入如果返回的是int类型可以用getInt()
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
c.closed();
}
}
3.终端su - oracle(你自己当时定义的用户名),
启动Oracle
lsnrctl start
//sqlplus sys/oracle as sysdba;
sqlplus /nolog
conn sys/oracle as sysdba
startup
4.运行Java
注意:
1.Eclipse的版本与JDK版本两者的版本或高或低,有可能导致Eclipse启动不了。
2.本人在安装Oracle时,参考的博主不是那个链接,有可能在配置文件致后面的用户名或者相关的命名不一样,方式是一样的。
3.本人在安装相关程序时,记录自己遇到的问题及相关解决方案:
1.按oracle的启动顺序应该是先启动回话监听,也就是[oracle@oracle ~]$ lsnrctl start,记住这里一定要在oracle用户的权限下执行
2、oracle启动,windows下通常在服务里启动oracle,一般情况下同时启动相关实例,但也可以设置启动oracle时,不
启动任何指定实例,这样oracle的启动速度相当快。
3、设定我们需要启动的相关实例。在console窗口中,输入 set oracle_sid=xxx (unix环境下用export命令)
4、用/nolog方式,进入sqlplus。 在console窗口中,输入 sqlplus /nolog ,然后回车,则进入sqlplus环境。
5、输入命令 connect sys as sysdba 回车后,提示输入口令,直接回车,则以sysdba的角色连接到oracle的空闲实例
。
6、输入命令 startup nomount 回车,则启动了xxx实例,由set oracle_sid=xxx设置。
7、输入命令 alter database mount 回车,则将相应的数据库挂接到xxx实例。
8、输入命令 alter database open 回车,则打开了相应数据库。
9、输入命令 shutdown,则关闭数据库、卸载数据库、关闭实例。
---------------------------------------------
oracle操作系统不同的启动顺序:
linux\Unix 下oracle的启动过程
lsnrctl start
//sqlplus sys/oracle as sysdba;
sqlplus /nolog
conn sys/oracle as sysdba
startup
windows 下oracle的启动过程
lsnrctl start;
oradim -startup -sid orcl;
--------------------------------------
sqlplus sys/oracle as sysdba;
select * from v$pwfile_users;//特权用户
---------------------------------------
数据库用户登录:
connect scott/tiger;
connect system/manager
connect sys/change_on_install as sysdba;//最高权限
create user abc
2 identified by abc
3 default tablespace users //存放用户数据
4 Temporary Tablespace Temp //临时数据放入Temp 临时表空间不能有限额.
5 Quota 50M on users
6 ;
alter user 用户名 Account Lock //用户加锁
alter user 用户名 Account Unlocak //用户解锁
alter User 用户名 Password Expire //用户口令即刻失效
Drop user 用户名 cascade //强制删除 用户和用户下的对象一起删除
-------------------------------------------------------------------------------------------------------
SELECT * FROM ALL_TABLES WHERE OWNER='USER_NAME'
----------------------解决方案:Connected to an idle instance.----------------------
ERROR: ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit
1 先看oracle的监听和oracle的服务是否都启动了。启动oracle监听:
cmd的命令行窗口下,输入lsnrctl start,回车即启动监听。
2 查看oracle的sid叫什么,比如创建数据库的时候,实例名叫“abc”,那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=abc
3 再输入sqlplus /nolog,回车
再输入 conn / as sysdba;回车
4 再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。
--------------------------------------------------------------------------------------------------
显示当前的显示条数(默认是14):
show pagesize;
设置显示条数为100跳:
set pagesize 100;
显示当前的显示列数:
show linesize;
设置显示列数为100:
set linesize 100;
------------------------------------------------------------------------------------------------
进入某个用户:查询其所有的表
select table_name from user_tables;
----------------------------修改主机名----------------------------------------------
永久修改主机名:
redhat/centos上永久修改
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.10.1
修改network的HOSTNAME项。点前面是主机名,点后面是域名。没有点就是主机名。
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master
这个是永久修改,重启后生效。目前不知道怎么立即生效。
想立即生效,可以同时采用第一种方法。
还有一个修改是:----------------------------
/etc/hosts
127.0.0.1 localhost.localdomain
127.0.0.1后面的那一部分。
--------------------配置jdk--------------------
JAVA_HOME=/home/gcs/user/java/jdk1.7.0_67
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
----------------------安装Oracle-----------------
http://www.cnblogs.com/pengineer/p/4351370.html
在安装图形界面Oracle时,如果出现乱码,请上网找,我当时忘记记录了
如果有时主机名变成bogon,有可能会连接不了(我也不懂为什么),请更改主机名
May-The-Good-Luck-Be-With-You