欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle11g For Win7安装过程的痛苦总结

程序员文章站 2022-05-07 22:33:52
...

入行以来,最害怕之一就是Oracle了。。前段时间在Linux上静默安装它,现在又在Windows下安装它,而且过程也是充满艰辛。。整个人就是被折磨过无数遍濒临崩溃状态,我觉得能成功安装它是一个讲究幸运的事情,好了,下面开始记录一些东西。或许以后还是可以参考一下!

 

==============================以上是抱怨的分割线==================================

 

1、先从完全卸载Oracle说起

之所以先讲它是因为我重复了10+遍了有。。完全卸载oracle才能再次尝试安装时有成功的可能。

1)计算机->管理->服务和应用程序->服务: 停止所有Oracle有关的服务;

2)开始->程序 里查找Universal Installer里卸载除dbhome_1(也许还有dbhome_2/dbhome_3)之外所有的组件;

3)找到dbhome_1所在的目录,删除;

4)注册表删除

删除HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE目录。

删除HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services中所有以oracle或OraWeb为开头的键。

删除HKEY_LOCAL_MACHINE/SYSETM/CurrentControlSet/Services/Eventlog/application中所有以oracle开头的键。

删除HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services中所有以oracle或OraWeb为开头的键。

删除HKEY_LOCAL_MACHINE/SYSETM/ControlSet001/Services/Eventlog/application中所有以oracle开头的键。

删除HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services中所有以oracle或OraWeb为开头的键。

删除HKEY_LOCAL_MACHINE/SYSETM/ControlSet002/Services/Eventlog/application中所有以oracle开头的键。

删除HKEY_CLASSES_ROOT目录下所有以Ora、Oracle、Orcl或EnumOra为前缀的键。

删除HKEY_CURRENT_USER/SOFTWARE/Microsoft/windows/CurrentVersion/Explorer/MenuOrder/Start Menu/Programs中所有以oracle 开头的键。

删除HKDY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI中除Microsoft ODBC for Oracle注册表键以外的所有含有Oracle的键。

5)删除所有与Oracle相关的目录

c:\Program file\Oracle目录、 ORACLE_HOME目录、c:\Documents and Settings\系统用户名、C:\Users\xxxx\Oracle(xxxx为用户名)、C:\Windows\System32\config\systemprofile\Oracle

6)开始->程序里所有的与oracle相关的快捷启动方式

 

确保以上全部删除,重启电脑即可。

 

2、安装Oracle

2.1 安装Oracle Database

1)首先需要注意的是,解压包如下:


Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
 请同时选中这2个压缩包再解压,如果你只选择一个解压后再把另一个解压到同目录,会很容易出现目录的错乱。

2)解压后的setup.exe请最好「以管理员身份」运行,经验之谈,不然会被各种权限的问题给搞死。。

3)步骤2的安装选项最好是「仅安装数据库软件」,这样可以把Oracle Database配置工作与安装过程解耦。这样做是因为在Oracle Database配置工作时很容易出错,如果你忽略或中止,整个安装过程没有成功完成就会退出,下次你再安装又会创建一个dbhome,造成紊乱;

4)步骤3选择「单实例数据库安装」,步骤6的安装目录可以自己指定,但基目录后面的目录结构最好不要修改。字符什么的最好用默认的即可~

5)安装完成Oracle数据库产品后,我们就开始着手数据库实例的安装与配置工作。

 

2.2 数据库实例安装与配置

6)开始->程序->Oracle->配置和移植工具:选择Database Configuration Assistant(最好以管理员身份运行,否则安装过程可能会提示:insufficient privilege权限不足)开始实例安装工作。

7)安装过程到Oracle Database Configuration Assistant时可能会出现如下错:


Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
 

解决办法:开始->程序->Oracle->配置和移植工具:选择Net Manager->本地->概要文件->Oracle安全特性->所选方法中去掉NTS

等待安装过程完成即可。安装后的「口令管理」千万别忘了,解锁被锁的所有用户并为sys和system用户设置你自己的密码~

(PS:安装成功真的要靠运气……)

 

3、使用PL/SQL Developer

好了,如果足够幸运成功安装Oracle,那么我接下来使用PL/SQL developer(以下简称PL/SQL)又是一顿折腾。

PL/SQL的使用要特别注意位数(bite)的概念,如果你的PL/SQL是32位的话,是无法加载64位的oci.dll的。

要注意以下概念:

“如果我plsql是32位的,说明它无法支持64位的oci.dll所以我就需要“曲线救国”,手动再安装一个32位的客户端供32位的plsql连接(32位的instant_client或win32_11gR2_client.zip),这时候我本地就相当于安装了2个oracle客户端,一个32位一个64位”

——你在安装oracle的时候客户端也一并安装的,但由于我安装的是64位的,如果PL/SQL不是64位的就麻烦了。。正确安装位数对应的PL/SQL很重要!!!

 

正确安装好位数对应的PL/SQL后,不要登录,先配置:


Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
 

这样,你在tnsnames.ora里面配置的数据库别名就可以直接被使用了。如:

E:\app\xxxxxx\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora:

 

#ORCL为数据库别名
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

 这样,你在登录PL/SQL时,Database那一项就会有你已经配置好的数据库别名选项,而无需你自己输入IP和端口之类的参数了。

 

 

4、创建表空间和用户

创建表空间是需要最高权限的,一般是sys用户,我们先在dos里面登入:


Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
 注意。sqlplus可能碰上中文乱码问题,别忘了设置环境变量:


Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
 或者用PL/SQL登录,只不过Connect as选择SYSDBA罢了。

 

1)表空间和用户、表的关系:

一个表只能属于一个表空间。一个用户可以拥有多个表空间。 一个表空间可以有多个表。

一般情况下,一个用户对应一个表空间。

表空间分为:临时表空间和永久表空间。我们可以命名不同的永久表空间,把功能相似的表放在同一个表空间下。表空间相当于一个“盛放表的容器”。

所以有这种语法:create(select) table 用户名.表名……

2)创建表空间、用户的步骤如下:

/*创建临时表空间 ,可以不做*/

create temporary tablespace 临时表空间名(如:soacloud_temp)

tempfile 'E:\oracle\oradata\XE\临时表空间名.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

 

/*创建数据表空间(dbf文件由你自己指定,无需事先创建,运行该语句后会自动生成) */

create tablespace 表空间名 logging

datafile 'F:\app\oracle\oradata\orcl\pdborcl3\表空间名.dbf'

size 300m

autoextend on

next 100m maxsize 20480m

extent management local;

 

/*创建用户并指定表空间 */

create user 用户名  identified by 密码

default tablespace 表空间名

temporary tablespace 临时表空间名;

 

 

/*第4步:给用户授予权限 */

grant connect,resource,dba to 用户名; (dab权限慎给)

 

3)sys用户和system用户

system是数据库内置的一个普通管理员,你手工创建的任何用户在被授予dba角色后都跟这个用户差不多。

 

sys用数据库的超级用户,数据库内很多重要的东西(数据字典表、内置包、静态数据字典视图等)都属于这个用户,sys用户必须以sysdba身份登录。

查看所有的用户:select username from dba_users; 

 

5、service_name和sid

service_name:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,你就在客户端的连接串里写上service_name;

sid:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字

 

windows环境查看oracle的sid和services_name

1)查看sid:  

方法一:打开注册表(win+R输入regedit)->HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraDb11g_home1->ORACLE_SID

方法二:sys用户登录,运行sql语句select instance_name from v$instance;

2)查看某数据库的service_name:

方法一:E:\app\用户名\product\11.2.0\dbhome_1\NETWORK\tnsnames.ora里面的指定数据库的SERVICE_NAME对应的内容

方法二:sys用户登录,运行sql语句

show parameter service_names

所以一个数据库对应一个service_name,多个数据库实例。

一般情况下,一个数据库对应一个实例。windows下可以通过DBCA(Database Configuration Assistant工具)来创建一个instance实例。

 

jdbc的url用service_name和sid连接的不同方式

jdbc:oracle:thin:@<host>:<port>:<SID>

jdbc:oracle:thin:@//<host>:<port>/<service_name> 

  • Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
  • 大小: 6.1 KB
  • Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
  • 大小: 5.2 KB
  • Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
  • 大小: 67.4 KB
  • Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
  • 大小: 3.3 KB
  • Oracle11g For Win7安装过程的痛苦总结
            
    
    博客分类: 数据库 Oracle安装Win7表空间用户PL/SQL Developer 
  • 大小: 16 KB