在装完64位的数据库之后,有的时候回遇到无法在plsql上连接上数据的问题。

1,先到Oracle网站下载Instant Client :

IT虾米网

根据你的操作系统选择不同的Instant Client版本

下载回是一个压缩文件,解压之后的文件夹叫:instantclient_11_2.放在你喜欢的目录即可.我这里是将该文件夹放在了oracle的安装根目录app下了:F:\app\instantclient_11_2

2.在instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容:

ORCL=
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

    )
    (CONNECT_DATA =
      (SID =orcl)
    )
)

注:这里可以将准备好的tnsnames.ora  、sqlnet.ora、listener.ora三个文件直接拷到instantclient_11_2下

3.配置oracle环境变量 和语言

设置oracle的home为服务器的路径  ORACLE_HOME :   F:\app\ThinkPad\product\11.2.0\dbhome_1     

添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:F:\app\instantclient_11_2\network\admin

设置oracle语言  ,添加环境变量NLS_LANG ,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK

查询oracle字符集的sql:select * from nls_instance_parameters;

查看NLS_LANGUAGE 的值

NLS_LANGUAGE

NLS_TERRITORY

4.设置plsql的

配置tools->preferences->connection

5、关闭PL/SQL Developer,重起Developer.

主机名就会出现在PL/SQL Developer的列表里,输入用户名密码,就可以登录远程oracle 11g数据库了。

补充Instant Client 说明

Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 可从oracle网站下载, 下载地址为
IT虾米网

包括如下内容:

Instant client Package - Basic 运行OCI, OCCI, 和JDBC-OCI应用程序需要的所有文件.

Instant client Package - Basic Lite: 只包含英语错误信息, 只支持unicode, ascii, 西欧字符集.

Instant client Package - JDBC Supplement  为jdbc增加了xa, 国际化和RowSet操作.

Instant Client Package - SQL *Plus 包含sqlplus和需要的库文件

Instant client Package - SDK 使用Instant Client开发Oracle 应用程序需要的头文件及示例makefile

Instant client package - ODBC 使用odbc时需要的库, 不是所有平台都有. Linux平台包含.

Basic和Basic Lite两个中必须选一个, 其他包都是可选的. 我下载了 Basic, JDBC supplement, SQL *Plus, SDK, ODBC. 解压后放在一个文件夹下, 在这个文件夹下建立文件tnsnames.ora, 设置环境变量LD_LIBRARY_PATH和TNS_ADMIN指向解压后的目录, 就可以使用sqlplus了.

我下载的instant client版本为10.2.0.2.0, 测试了联接到oracle 9.2.0.4和oracle 10.2.0.1.

Instant Client中不包含tnsping, exp/imp, rman, netca等工具. 如果需要这些工具则需要安装oracle client

如果大家觉得这样操作比较麻烦,可以使用使用 Navicat Lite for oracle 连接 Oracle 数据库,

详见 这篇文章。 IT虾米网

 6.装载数据库名open数据库

conn sys/sys as sysdba
Shutdown abort;
Startup nomount;
select instance_name,status from v$instance;

数据库带到mount状态
select value from v$spparameter where name='control_files';
Alter database mount;
Mount数据库的过程是读参数文件中描述的控制文件,校验控制文件的正确性,将控制文件的内容读入到
内存,mount是挂接的意思,是操作系统中的概念.一旦mount之后,就是将一个没有意义的实例和一个
数据库发生了联系.因为实例是空壳.没有任何数据库和该实例发生关系,我们可以理解为实例是水泵,放
到哪个水塘里就会抽取哪里的数据,实例是通用的.mount的意思是将一个通用的水泵放入到指定的水塘.
mount是读控制文件,控制文件中有数据文件和日志文件的信息.
select instance_name,status from v$instance;

打开数据库
Alter database open;
读控制文件中描述的数据文件
验证数据文件的一致性,如果不一致,使用日志文件将数据库文件恢复到一致的状态.
数据库open后,普通用户才可以访问数据库
用户的表才为可见
只读方式open数据库
Alter database open read only;
select OPEN_MODE from v$database;
默认的open方式为read write
想改read only为read write 必须重新启动数据库
我们现在回想一下数据库启动的三个台阶,我们先读的是参数文件,参数文件可以有我们来编写.读完参数
文件后又读了控制文件,控制文件描述了数据文件和日志文件的信息,如果控制文件丢失可以重新建立,最
后是读数据文件.数据文件里才存放了我们的数据.数据库将启动分为三个台阶,目的是我们可以准确的知
道哪里有问题,迅速的排除.有点象老鼠拖木钎,大头在后面.由最开始的一个1k的参数文件,最后到几个t
的大型数据库.当我们只打startup而不加任何参数的时候.默认是到open,等于startup open;
SQL> startup
Oracle instance started.

一般情况下,alter database open 和starup的作用是一样的,都是打开实例。

注:如果没有装载和open数据库,则在服务和应用程序中无法启动oracle的listener进程,也无法在plsql中连接到该数据库。


发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

decode和case的用法知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。