一.Oracle概述
Oracle公司-甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。
Oracle公司的网址为http://www.oracle.com
Oracle在企业的大型应用、海量存储、高性能、高并发、安全性等方面都相当不错,被广泛应用于各个领域。Oracle不仅有数据库产品,而且也是ERP软件的供应商。
二、Oracle服务端的安装和配置
版本和下载
Oracle的版本发展8、9i,10g,11g,12c…
Oracle分免费简化版本(Oracle Database Express)和完整版本(Oracle Database),都可以*下载。
Express版本你可以免费用于商业用途,但这个版本对cpu/内存/数据量的有限制。
常见的关系型数据库的Express版本对比
完整版本可以免费用于学习、教学等,如果商用则需要收费,那么就可以享受Oracle公司提供的服务,Licence按照CPU数量报价(2009年),一个CPU大约50w左右,打完折,25w以上。
完整版本Oracle的windows版本(32位)是从官方直接下载的参考网址:
http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zip
http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_2of2.zip
软件安装
这里我们安装简化版本:
注意:安装目录 不能出现中文和空格
这个口令是sys和system这两个超级用户的密码。sys相当于mysql的root。
sys和system是系统的管理员帐号,默认密码是安装Oracle时指定的密码。
测试是否安装成功:
在安装有oracle的机器上,运行cmd,输入(开始我这里设置的密码为root)
sqlplus sys/[email protected]:1521/xe as sysdba
如果出现了以下情况:
重启电脑或者使用命令提示符(管理员) 打开窗口:
软件的卸载(再运行一遍简化版的安装程序,直到出现下面的界面):
Oracle的服务_了解
在windows下打开“运行”,输入“Services.msc”,找到Oracle相关的服务。
完整版本:
简化版本:
关于这些服务:数据库实例服务和监听服务必须启动,其他都可以禁用。(如果安装到自己学习的机器,那么建议全手动。)
手动启动或重启服务的顺序问题:
建议先启动实例服务:OracleServiceXE,再启动监听服务
提醒:每次重启或开启服务的时候,需要等一会再连接。
Oracle的服务端口,默认是1521
提醒:简化版安装完成之后,你的8080端口可能会被占用。你可以将这个服务禁用,也可以将端口改掉。
可以参考:
Oracle XE http端口8080的修改
Oracle Express Edition(XE)默认的http端口是8080,这跟JBoss/Tomcat的默认端口相同,导致Jboss启动冲突。
修改办法:
-
以dba身份登录XE
-
执行下列语句
begin
dbms_xdb.sethttpport(‘7000’);
dbms_xdb.setftpport(‘0’);
end;
这样就把默认的8080端口改成7000了,不用重启oracle服务,即时生效!
3 . 修改下面二个internet快捷方式(位于oraclexe安装目录的product\11.2.0\server下)
X:\oraclexe\app\oracle\product\11.2.0\server\Get_Started.url
X:\oraclexe\app\oracle\product\11.2.0\server\Database_homepage.url
用记事本打开这二个文件,把8080换成7000
以上处理对Oracle 11g /R2 同样有效。
三、Oracle客户端的安装和配置
常见的客户端工具
常见的客户端工具为Oracle自带的命令行工具sqlplus、jdbc、第三方的图形化工具plsql developer,下面依次讲解一下安装配置和基本使用。
Sqlplus
Oracle自带的命令行工具,兼容性和连接速度都是很好的。
如果你在当前操作的机器上安装有Oracle,则默认情况下就拥有这个命令行工具,不需要额外安装。否则,你需要安装Oracle独立客户端(Oracle Instant Client)。
使用sqlplus
基本语法:sqlplus 用户名/密码@主机地址:端口/sid(oracle的服务标识) 登录身份(端口默认是1521,可省略!)
sid:是安装的时候提供的一个字符串,简化版默认是xe,无法更改;完整版默认orcl,可以更改
登录身份:普通用户不需要写,超管用户需要使用dba的身份,写法:as sysdba
在服务机上的cmd窗口中可以直接输入sqlplus命令:
查看当前登录的用户:
SQL> show user;
连接的时候可以省略端口号(默认是1521):
JDBC连接
通过JDBC来连接Oracle有两种方式:
**Thin(瘦客户端)**方式。纯java直连方式(直接的TCP/IP通讯),推荐。优点是只需要Oracle的驱动包(jar)就行
连接字符串:jdbc:oracle:thin:@localhost:1521:xe
Oci(胖客户端,Oracle Call Interface)方式。
Java来调用本机的Oracle客户端,然后再访问数据库,优点是速度快,但是需要安装和配置Oracle数据库的环境。不推荐。PLSQL Developer就是用的这种方式,它需要依赖于客户端OCI程序(前提必须安装)。
连接字符串:jdbc:oracle:oci:@localhost:1521:orcl, jdbc:oracle:oci8:@orcl
案例:
使用java连接Oracle,查询并打印sys用户下的tt表(自己建立的表)的数据。
/**oraclejdbc测试
* @author clark
*
*/
public class JdbcTest {
public static void main(String[] args) throws Exception {
//1.加载驱动
//mysql: com.mysql.jdbc.Driver
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.创建连接对象
//连接字符串
//mysql: jdbc:mysql:///数据库名
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "sys as sysdba";//只有超级管理员登录的时候需要添加 as sysdba,普通用户不需要添加
String password = "root";
Connection conn = DriverManager.getConnection(url, user, password);
//3.获取语句对象
Statement stat = conn.createStatement();
//4.发送sql语句
String sql = "select * from tt";
ResultSet rs = stat.executeQuery(sql);
//5.处理执行结果
while(rs.next()){
System.out.println(rs.getString("name"));
}
System.out.println("over!");
//6.释放资源,先开后关
rs.close();
stat.close();
conn.close();
//提示: oracle 事务管理默认是手动的,必须先提交,在其他的连接中才能获取数据
}
}
PL/SQL Developer
工具的安装
该工具是第三方的工具,非官方的。后面都简称“工具”;
本次教学提供安装版本和绿色版本,推荐使用绿色版本,直接解压即可使用。
工作中使用的频率很高, 在银行工作期间我一直一直使用该工具。
直接解压到一个目录即可(不要出现中文),主执行文件为plsqldev.exe,可以自行创建快捷方式。
工具的使用优化设置
对象的显示顺序:
Tools->Preferences->
Oracle客户端连接知识(客户端连接验证机制、客户端登录身份)
Oracle有三种连接验证机制:
操作系统验证(具有sysdba和sysopera的用户)
数据库密码验证(普通用户和超级用户)
超级管理员连接数据库的方式:
或者
成功登录。(免登录必须在安装有Oracle服务的服务器上才有效)
免密码登录的原因是:
oracle安装时自动创建了一个ora_dba的组,并将当前用户放入该组。如果你连接oracle的时候,会优先使用来查找当前用户是否在组中。如果在组中,则不需要密码就可以登录。
免登录要求:必须在安装有Oracle的本机上才能使用。
客户端登录的身份
Oracle有三种身份登录方式:Normal、sysdba、sysoper。
normal身份:普通用户身份,默认选项(默认可以不写),用于普通用户登录使用。—记录日志(你的任何操作oracle都会记录一份日志)
sqlplus scott/[email protected]:1521/xe
sysdba身份:数据库管理员身份,用于给拥有DBA权限的用户登录使用。(拥有数据库)
该身份可以进行的操作: 打开、关闭数据库服务器, 备份、恢复数据库, 日志归档,会话限制,管理功能,创建数据库等。----操作是不计日志的。
sysoper身份:数据库操作员身份,用于给拥有DBA权限的用户登录使用。
该身份可以进行的操作: 打开、关闭数据库服务器, 备份、恢复数据库, 日志归档,会话限制等。—记录日志