PLSQL-Developer或者Navicat等工具连接远程oracle数据库的详细配置以及数据库编码的修改

  在服务器上将Oracle安装好之后接下来要做的就是通过本地机器来远程连接服务器端的oracle数据库,常用的客户端连接工具就是PLSQL-Developer或者Navicat这些工具了。刚开始也是各种报错,什么TNS:no listener;TNS:lost connection;TNS:target hosts...花了一天的时间终于让PLSQL-Developer和Navicat等这些客户端工具均可以连接到服务器的数据库了。好了,废话不多说下面开始讲我最终成功的操作步骤,句句是干货,希望能够帮助到有同样需求的朋友。

 

先说说我操作这些东西的环境:

 

远程服务器oracle数据库的版本11.2

PLSQL-Developer9

Navicat Premium11.1

 

详细步骤:

1.打开网址http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html,下载与你要连接的服务器oracle数据库版本一致的oracle客户端,这里我下载的是instantclient-basic-win32-11.2.0.1.0.zip

 

2.将下载好的oracle客户端解压至某个目录,我这里是直接解压到C盘下

 

3.新建一环境变量,变量名为 ORACLE_HOME,变量值为 C:\instantclient_11_2

 

4.新建一环境变量,变量名为 TNS_ADMIN,变量值为 C:\instantclient_11_2\

 

5.新建一环境变量,变量名为 NLS_LANG,变量值为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意:这个环境变量是配置数据库语言的,根据自己的实际情况配置,我这里是GBK

 

6.修改path环境变量,在最后面添加 C:\instantclient_11_2

 

7.从服务端oracle的安装目录中拷贝文件名为tnsnames.ora的文件至刚刚新建的TNS_ADMIN环境变量所对应的目录下

 

8.在tnsnames.ora中增加自己的数据库别名配置,示例如下:

 

TESTDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.115)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

 

注意:这里HOST值必须为远程服务器对应的ip地址,SERVICE_NAME值必须为远程服务器的数据库实例名称,TESTDB为别名

 

9.接下来安装PLSQL-Developer或者Navicat客户端连接工具。

 

注意:下面这步很关键

如果是PLSQL-Developer需要在Tools-->Preferences下设置Oracle Home为上面新建的名为ORACLE_HOME的环境变量值C:\instantclient_11_2,OCI library为C:\instantclient_11_2\oci.dll。关闭重启生效;

如果是Navicat需要在工具-->选项下设置OCI,选择oci.dll路径为C:\instantclient_11_2\oci.dll。关闭重启生效;

 

10.如无意外,此时已能使用PLSQL或Navicat成功连接远程服务器上的数据库了。

 

11.卸载方法:在系统变量中,删除 ORACLE_HOME, TNS_ADMIN, NLS_LANG 三个变量,修改path变量,去掉 C:\instantclient_11_2目录。

 

数据库编码的更改

 

目前我的数据库环境的字符集是AL32UTF8,把它改成ZHS16GBK的操作步骤为:

 

1.首先以sysdba的身份登录上去 conn /as sysdba

 

2.关闭数据库 shutdown immediate;

 

3.以mount打来数据库,startup mount

 

4.设置session

 

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

  

5.启动数据库 alter database open;

 

6.修改字符集

 

ALTER DATABASE CHARACTER SET ZHS16GBK;

这时可能会报错,提示我们新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

这条语句就可以了,INTERNAL_USE提供的帮助就会使oracle绕过子集与超集的验证,这条语句和上面的语句内部操作是完全相同的。

 

7.关闭,重新启动

 

SQL>shutdown immediate;
SQL>startup

 

 

你可能感兴趣的:(oracle,plsql)