Oracle数据库安装之初探
最近因为工作需要,搭建了一个oracle单元测试环境,之前只玩过mysql,对oracle一直是望而却步。如今大胆尝试了一把,在这里写一点总结。
安装oracle软件的过程本身并不痛苦,倒是在装数据库的时候,被网上的众多资料迷惑了把。这里就总结下在装数据库时的一系列步骤 和可能出现的问题吧。
这次装数据库采用的是静默安装方式,从我的理解,所谓静默安装就是没有GUI交互的自动化安装呵呵。
1. 配置好静默安装数据库的反应文件dbca.rsp
需要配置的项有:数据库名称,数据库实例名称,sys用户和system用户的密码(sys用户是Oracle数据库中权限最高的帐号,一般管理员用system就够了)
这里一开始对数据库名称和数据库实例名称有点混淆,后来还出现了一个ORACLE_SID,就更迷糊了。这里总结一下:
数据库名称:就是我们用MySql时通常理解的数据库名,是用于区分数据的内部表识。在oracle中,数据库创建好后,数据库名是不能被修改的。在一个oracle服务器程序中我们可以创建多个数据库,因此也会有多个数据库名。但外部是不能 通过数据库名直接访问数据库的。
数据库实例名称:就是数据库名称的一个实例名,他和数据库名称一一对应。它主要用于和操作系统之间的联系,以及对外部连接时使用。数据库实例名称本身是可以修改的。
ORACLE_SID:这个其实就是个环境变量,对应的值就是数据库实例名称,主要用于操作系统获得数据库实例名。所以在oracle数据库配置中是看不到它的。
2. 执行命令创建创建数据库
dbca -silent -createDatabase -responseFile /home/oracle/dbca_createdb.rsp &
不出意外的话,命令执行完后数据库就已经创建好了,如果有提示错误,相应的修改反应文件,配置正确后基本上都能得到解决。
3. 接下来的一步就是要配置tnsname.ora,listener.ora,sqlnet.ora三个重要文件了
这三个配置文件都是放在$ORACLE_HOME\network\admin目录下($ORACLE_HOME环境变量在安装数据库软件时就已经设置好了)
sqlnet.ora:作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串。
一般默认是不需要设置的。所以这里就略过了。网上有详细的解释。
listener.ora: listener监听器进程的配置文件。如果需要远程连接数据库,oracle服务器端的这个是一定要配置的。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = test_db)
(ORACLE_HOME = /home/oracle/oracle/product/10.2)
)
)
这里需要配置一下oracle服务器的hostname, 端口,SID_NAME(数据库实例名),ORACLE_HOME.
tnsnames.ora:同样如果需要远程连接,客户端的配置也是非常重要的。它主要提供的tnsname到主机名或者ip的对应。
test_database =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle_server_ip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test_db)
)
)
这里的SERVICE_NAME,我的理解就是listner.ora里配置的SID_NAME,也就是数据库实例名。不知道有没有错误。
这三个配置文件配置完成后,工作基本上已经完成一大半啦。
4. 配置环境变量ORACLE_SID和TNS_ADMIN为:
ORACLE_SID: 数据库实例名
TNS_ADMIN:指向tnsnames.ora的目录的位置如:/home/oracle/oracle/product/10.2/network/admin
5. 启动监听程序:lsnrctl start (这个不用细说啦)
到这一步,如果不确定自己配置的是否正确,可以尝试使用tnsping这个命令给你答案.
如:tnsping test_database (成功了就表述配置都正确啦,可以用客户端连接了)
6. 到这一步应该都大功告成啦,后面的事情就简单了:用管理员帐号登录,创建用户和数据库表。
用管理员帐号登录:sqlplus ‘/ as sysdba’
ORACLE创建用户的简单方法:
CREATE USER <username> IDENTIFIED BY <password>
DEFAULT TABLESPACE users #指定该用户的表空间
TEMPORARY TABLESPACE temp; #用户所创建的表和索引默认存放的地方
GRANT CONNECT,RESOURCE TO <username>; #赋予用户一定的权限
建数据库表的方法以及其它命令就不在这里列出来了。