• 0x00 快速入门
  • 0x01 环境准备
  • 0x02 数据库安装
  • Oracle 10g安装
  • Oracle 11g安装
  • 0x03 oracle客户端安装
  • 0x04 补充知识
  • 0x05 入坑记

0x00 快速入门

目前Oracle最新版本为18c 应用最广泛的为11g;
官网下载:https://www.oracle.com/downloads/index.html


0x01 环境准备

Oracle 11g安装环境准备

#环境准备
操作系统: Windows Server 2008 R2 :
必须基础环境: JDK (Java)
Oracle版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Microsoft Windows (x64)

#Oralce11g下载页面:
https://www.oracle.com/database/technologies/112010-win64soft.html

#依次解压下面的压缩文件到当前目录之下
win64_11gR2_database_1of2.zip
win64_11gR2_database_2of2.zip

0x02 数据库安装

Oracle 10g安装

Oracle 10g提供了高性能与高稳定性的企业级数据存储方案,也对Windows操作系统提供了更好的支持。
借助Windows操作系统以线程为基础的服务模式,Oracle 10g可以提供更高的执行性能、更稳定的执行环境,以及更具扩展性的平台。

1.右键以管理员运行setup.exe出现图1所示的“Oracle Database 10g安装”画面。
Windows下安装Oracle11g数据库_oracle
画面中网格背景寓示了10g的​​​卖点Grid Computing“网格计算”​​​, 选中“高级安装”,​​以便为SYS、SYSTEM设置不同的口令​​,并进行选择性配置。

2.“下一步”进入“Oracle Universal Installer:指定文件位置”,设置源“路径”、“名称”和目的“路径”,名称”对应ORACLE_HOME_NAME环境变量,“路径”对应ORACLE_HOME环境变量
注意:最好不要有英文;
Windows下安装Oracle11g数据库_sql_02

3.“下一步” 进入“Oracle Universal Installer:选择安装类型”,企业版(E)

4.选择数据库配置通用
Windows下安装Oracle11g数据库_sql_03

5.下一步,进入“Oracle Universal Installer:指定数据库配置选项”。(非常重要)
指定“全局数据库名”和“SID”,对这两个参数的指定一般相同,例如:oract(后面的服务会用到)也可以将“全局数据库名”设置为域名例如:oract.abc.com
如果选择“创建带样本方案的数据库,OUI会在数据库中创建HR、OE、SH等范例方案(sample schema),大数据专用!
Windows下安装Oracle11g数据库_数据库_04

6.下一步,进入“Oracle Universal Installer:选择数据库管理选项”,选择Database Control管理数据库,不启用电子邮件通知;

7.保持默认值,下一步,进入“Oracle Universal Installer:指定数据库文件存储选项”
Windows下安装Oracle11g数据库_数据库_05

8.保持默认值,下一步,进入“Oracle Universal Installer:指定备份和恢复选项” (不恢复和备份选项)

9.保持默认值,单击“下一步”,进入“Oracle Universal Installer:指定数据库方案的口令”,对不同的帐户设置不同的口令,或者使用同一个密码

10.单击“下一步”,继续安装,进入“Oracle Universal Installer:概要”

11.单击“安装”,开始安装过程

12.数据库创建完成时,显示“Database Configuration Assistant”窗口
Windows下安装Oracle11g数据库_oracle_06

13.单击“口令管理”,进入“口令管理”窗口
解锁用户HR、OE和SCOTT,输入HR和OE的口令,SCOTT的默认口令为tiger。
安装过程中需要注意:口令设置时一般有四个用户:

* 超级管理员:sys/change_on_install;
* 普通管理员:system/manager;
* 普通用户:scott/tiger; (普通用户在业务上使用为了安全)
* 大数据用户:sh/sh;

#超级/普通管理员账号一定要设置密码
sys :admin
system :system

Windows下安装Oracle11g数据库_oracle_07

14.安装结束验证:

Enterprise Manager Database Control URL - (orcl) :
http://USER-39:1158/em
数据库配置文件已经安装到 C:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到 C:\oracle\product\10.2.0\db_1。

iSQL*Plus URL 为:
http://USER-39:5560/isqlplus

iSQL*Plus DBA URL 为:
http://USER-39:5560/isqlplus/dba

15.Oracle 10g 的卸载

参考如下步骤:
1)直接运行卸载程序;
2)删除硬盘上残留文件,如果删除不掉则先进入到安全模式下删除;
3)同时删除注册表中所有与Oracle有关的配置项。

补充说明:
1.目录树型结构图及PATH环境变量:

D:\oracle\product\10.1.0\dbct\bin;
D:\oracle\product\10.1.0\dbct\jre\1.4.2\bin\client;
D:\oracle\product\10.1.0\dbct\jre\1.4.2\bin;

2.默认ORACLE_BASE所有的ORACLE软件文件和数据库文件都位于它下面的子目录中。

在Windows中,默认的ORACLE_BASE目录是:D:\oracle\product\10.1.0(跟你设置有关)
在UNIX中,默认的ORACLE_BASE目录是:/pm/app/oracle/10.1.0

3.默认ORACLE_HOMEE是访问所有ORACLE软件的路径。

在Windows中,默认的ORACLE_HOME目录是:D:\oracle\product\10.1.0\dbct  (跟你设置有关)
在UNIX中,默认的ORACLE_HOME目录是:/pm/app/oracle/10.1.0/dbct

admin文件夹,存储初始化文件和日志文件网络监听控制器
Oradata\oract文件夹,存储数据库数据文件.dbf、控制文件.ctl、重做日志文件.log

Windows下安装Oracle11g数据库_oracle_08

4.Oracle 注册表项之语言设置

#名称                    数据
NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK
#//其中:SIMPLIFIED CHINESE表示简体中文 simplified,CHINA表示中文日期格式,ZHS16GBK表示编码。

Windows下安装Oracle11g数据库_数据库_09

详细说明:
NLS_LANG格式:NLS_LANG=language_territory.charset ​​​有三个组成部分(语言、地域和字符集)​​​,每个组成成分控制了NLS子集的特性。
三个成分可以任意组合,例如:

  • AMERICAN_AMERICA.US7SCII
  • JPANESE_JAPAN.JA16EUC
#还有一些子集可以更明确定义NLS_LANG参数:
NLS_DATE_FORMAT 缺省的日期格式
NLS_DATE_LANGUAGE 缺省的语言
NLS_NUMBERIC_CHARACTERS 小数字符和组分隔开
NLS_CURRENCY 本地货币字符
NLS_ISO_CURRENCY ISO货币字符
NLS_SORT 字符排序序列

其中:language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,Charset 指定字符集;如果使用英文,将NLS_LANG的值改为:AMERICAN_AMERICA.WE8ISO8859P1 或 englishi_ America.US7SCII
在SQL/PLUS中,运行下面的SQL语句,检查所连接数据库的字符集:

SQL> select userenv('language') from dual;
  USERENV('LANGUAGE')
  ----------------------------------------------------
  SIMPLIFIED CHINESE_CHINA.ZHS16GBK

5.Oracle 10G服务进程
在Windows操作系统下安装Oracle 10g数据库以后,计算机的运行速度明显降低,所以在不使用数据库时,可将Oracle 10g数据库服务关闭

  • 要使用数据库时,根据应用情况只启动必要的服务,必须启动的服务:
  • OracleServicexxx就是xxx就是我们的"全局数据库名”和“SID"
  • OracleCSService服务在做10G RAC的時候才會有,CSS(Cluster Synchronization Service)

Windows下安装Oracle11g数据库_sql_10

6.ORACLE DATABASE 10G 版本安装异常处理
Windows下安装Oracle11g数据库_sql_11
设置兼容性为windows xp,和右键管理员启动安装程序Setup.exe


Oracle 11g安装

0.在Oracle11g解压的根目录中运行 ​​C:\11gR2\database\setup.exe​​,弹出安装界面;

1.配置安全更新(可以直接跳过),点击下一步即可

2.安装选项:创建和配置数据库
Windows下安装Oracle11g数据库_sql_12

3.系统类选项:选择桌面类

4.典型安装配置目录信息:Oracle根目录/软件位置/数据库文件位置/

  • 数据库版本: 企业版
  • 字符集: Unicode(AL32UTF-8)
  • 全局数据库名称: orcl
  • 设置后面sysdba的密码:PS(如果不设置默认密码manager,密码中不能出现@符号) WeiyiGeek.123

Windows下安装Oracle11g数据库_oracle_13

5.安装条件检测(然后显示出概要),您可以保存响应文件
Windows下安装Oracle11g数据库_sql_14

6.最后安装Oracle产品(等待几分钟即可)
Windows下安装Oracle11g数据库_oracle_15

7.安装完成之后会然我们管理Oracle数据库账号密码(是否停用等打勾为确定锁定)

  • 为了安全建议各个账号的密码不能设置相同

Windows下安装Oracle11g数据库_数据库_16

8.通过客户端或者是网页端连接数据库;

  • OC4J管理使用Application Server Control从浏览器管理OC4J
  • Database Control - orcl Oracle Enterprise Manager 11g : https://localhost:1158/em/console/logon/logon

Windows下安装Oracle11g数据库_sql_17

  • Enterprise Manager 配置主要功能:
  • 管理员账号密码设置,补丁管理,封锁连接,管理包访问以及监控数据库
  • 实例显示,主目录以及运行情况等待,备份和恢复

Windows下安装Oracle11g数据库_数据库_18

9.验证登录使用 PLSQL Developer 12 (64 bit)

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

Windows下安装Oracle11g数据库_oracle_19

Windows下安装Oracle11g数据库_数据库_20


补充知识:

1.环境变量设置

#Oracle语言:
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

#监听目录
setx /M ORACLE_HOME "C:\app\Oracle\product\11.2.0\dbhome_1"
setx /M TNS_ADMIN "%ORACLE_HOME%\NETWORK\ADMIN"
setx /M PATH "%PATH%;%ORACLE_HOME%\BIN"


2.验证Oracle是否正常启动监听运行

#看服务 ORCL表示实例名称
- OracleServiceORCL (启动)#@不建议自启
- OracleRemExecService
- OracleOraDb11g_home1TNSListener #@不建议自启
- OracleMTSRecoveryService
- OracleDBConsoleorcl
- OracleVssWriterORCL
- OracleOraDb11g_home1ClrAgent(未启动)
- OracleJobSchedulerORCL

#看端口
TCP 127.0.0.1:1521 0.0.0.0:0 LISTENING 2828
TCP 127.0.0.1:1521 127.0.0.1:49192 ESTABLISHED 2828

#看状态
lsnrctl status #查看oracle状态
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 28-8月 -2019 11:1
2:52

Copyright (c) 1991, 2010, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期 28-8月 -2019 09:58:26
正常运行时间 0 天 1 小时 14 分 27 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 C:\app\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件 c:\app\oracle\diag\tnslsnr\WIN-76Q3KD7PI52\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

Windows下安装Oracle11g数据库_oracle_21


3.Oracle的停止与启动

#重要提示:管理员身份运行该脚本
启动服务(OrclService_Start.bat)命令:
net start "OracleDBConsoleorcl"
net start OracleOraDb11g_home1TNSListener
net start OracleServiceORCL
pause
exit

停止服务(OrclService_Stop.bat)命令:
net stop "OracleDBConsoleorcl"
net stop OracleOraDb11g_home1TNSListener
net stop OracleServiceORCL
pause
exit


4.Oracle监听停止和启动

lsnrctl stop #关闭
lsnrctl start #启动

注意事项:

  • 安装完之后oracle默认配置的监听是localhost,如果不仅仅是本地访问,需要其他机器能访问到的话需要修改监听的地址。
#开始 -> Oracle - OraDb11g_home1 -> 配置和移植工具 -> net manager (只是本身的ps/SQL连接的时候生效)
-> 服务命名 -> 数据库名称(比如我这里orcl) -> 地址配置 -> 127.0.0.1 1521

#保存配置
文件 -> 保存网络配置

#监听程序设置机器IP
# -> 数据库服务 -> 添加数据库 -> Oracle主目录就是ORACLH_HOME
# -> 监听地址 -> 将localhost改成外部IP地址 -> 192.168.1.129

Windows下安装Oracle11g数据库_数据库_22

外部机器登录到ORACLE数据库中
Windows下安装Oracle11g数据库_数据库_23


0x03 oracle客户端安装

PLSQL Developer 12(64bit)
描述:用PL/SQL连接到其他Oracle机器上面:

  • 1.下载instantclient_11_2并解压百度云: https://pan.baidu.com/s/1JlcwT42Jnn-OqrtIJ2WLWg 密码:t8o9
  • 2.更改下载的tnsnames.ora修改成为您要连接的Oracle服务器的IP端口以及服务名称等待,并且设置环境变量
192.168.1.129_bd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.129)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

#环境变量设置(指向instantclient_11_2并解压的目录)
setx /M TNS_ADMIN "F:\ChoromeDownload\instantclient_11_2"
  • 3.进行PL/SQL配置oci依赖库:​​F:\ChoromeDownload\instantclient_11_2\oci.dll​

Windows下安装Oracle11g数据库_数据库_24

  • 4.最后选择登录192.168.1.129_bd数据库输入账号密码即可
192.168.1.129:1521/orcl

Windows下安装Oracle11g数据库_oracle_25

注意: 如果本机安装有Oracle数据库的话直接在Oracle根目录下安装 ​​C:\app\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora​​​文件进行修改配置配置oracle客户端的监听;
Windows下安装Oracle11g数据库_sql_26


Navicat Premium 12 客户端连接
描述:可以看到Navicat支持众多的数据库连接,还包括云上数据库的连接;
Windows下安装Oracle11g数据库_sql_27

下面进行连接Oracle数据库配置(需要设置登录角色):
Windows下安装Oracle11g数据库_sql_28


0x04 补充知识

知识1.Oracle监听器的静态注册与动态注册区别
描述:如何查询某服务是静态注册还是动态注册?

#在运行lsnrctl status 常会看到如下返回值:
服务Orcl包含1个例程。
例程"mydata",状态 UNKOWN,包含此服务的一个处理程序。
服务Orcl包含1个例程。
例程"mydata",状态 READY,包含此服务的一个处理程序
服务Orcl包含1个例程。
例程"mydata",状态 BLOCK,包含此服务的一个处理程序


(1)静态注册
由于静态注册参数是​​​手动静态添加与数据库无关​​​,监听配置中数据库服务中的​​全局数据库名写任意内容与数据库无关​​​,只要保证SID正确即可连上数据库。
数据库无法确认监听是否正确配置因此​​​lsnrctl中的status显示状态为unkown​​​,即不保证能连通数据库;
监听器用来表明它不知道关于该实例的任何信息,只有当客户发出连接请求时,它才检查该实例是否存在

# 在配置listerner.ora中 #
#lsnrctl status中显示如下
服务"WeiyiGeek"包含1个例程。
例程"mydata" 状态UNKOWN,包含此服务的一个处理程序

#WeiyiGee 从监听配置过程,数据库服务中的“全局数据库名”读到的值(即配置文件中GLOBAL_DBNAME的值)
#"mydata" 从监听配置中,数据库服务中SID读到的值(即SID_NAME的值)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = WeiyiGeek)
(ORACLE_HOME = /orahome/oracle/product/10.2.0/db_1)
(SID_NAME = mydata)
)
)


# 在配置tnsname.ora中 #
服务名SERVICE_NAME即为WeiyiGeek,否则连接不到数据库。
#在客户端连接服务器时,填写的主机字符串即为此服务命名192.168.1.129_bd
192.168.1.129_bd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.129)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WeiyiGeek) #关键点哟
)
)

静态注册监听不知道实例的具体状态,所以监听启动之初查看实例信息其状态信息显示为UNKNOWN.例如:

> lsnrctl status LISTENER_PHAMR
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Service "phamr" has 1 instance(s). 监听状态中的服务名
Instance "phamr", status UNKNOWN, has 1 handler(s) for this service... 监听状态中的实例名


(2)动态注册
描述: 动态注册的数据库通过状态信息中的状态READY或状态BLOCKED(对于一个备用数据库)来指明。
不管何时关闭数据库,动态注册的数据库都会动态地从监听器注销,而与之相关的信息将从状态列表中消失。不管数据库是在运行还是已经关闭,监听器总是知道它的状态;该信息将被用于连接请求的回退(fallback)和负载平衡。

pmon在数据库启动到mount或open时动态从参数文件中读取service_names值缺省​​为dbca建立数据库时的全局数据库名(orcl)​​​。
设置参数service_names为'a,b,c',命令如下: ​​​alter system set service_names='a,b,c'​​;

#lsnrctl状态如下:
服务“test”包含1个例程。
例程"WeiyiGeek",状态 UNKOWN,包含此服务的一个处理程序
服务"a"包含1个例程。
例程"WeiyiGeek",状态 READY,包含此服务的一个处理程序
服务"b"包含1个例程。
例程"WeiyiGeek",状态 READY,包含此服务的一个处理程序
服务"c"包含1个例程。
例程"WeiyiGeek",状态 READY,包含此服务的一个处理程序
服务 "WeiyiGeek" 包含一个例程。
例程"mydata",状态 READY, 包含此服务的一个处理程序

#以上服务名a, b, c, WeiyiGeek都为READY为动态注册,注意这里最后一条WeiyiGeek是PMON缺省动态注册到监听器内的。
不管参数service_names为何值pmon都会自动以全局数据库名(这里为WeiyiGeek)为服务名,动态注册一个监听。

自定义端口的动态监听注册:
若要启用非默认端口1521的动态监听注册,缺省状态Oracle不会进行动态注册。
要启用动态注册,​​​必须设置local_listener参数,并在服务端配置tnsnames.ora指定监听参数​​​,或者直接通过修改local_listener指定监听参数。步骤如下:
1.服务端: Net Manager 配置监听程序,监听端口为1525(非默认端口)并且保存配置
2.指定监听参数

#法1:直接通过修改local_listener参数指定
SQL>alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525))';
System altered

SQL>alter system register
System altered

#法2:在Oracle服务器端建立$ORACLE_HOME/network/admin/tnsnames.ora 解析文件位置并填入如下内容
WeiyiGeekOracleLogin =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST = 192.168.1.23)(PORT = 1525))
)
)
#设置参数指定通过tnsnames.ora内的信息指定监听参数
SQL>alter system set local_listener=WeiyiGeekOracleLogin;
System altered
SQL>alter system register;

监听动态注册时的实例状态:来自PMON进程动态注册时的实例3种状态:​​READY、BLOCKED和RESTRICED​

  • READY:表示数据库实例已经处于mount或者open状态,可以接受客户端连接
  • BLOCKED:表示数据库实例还处于nomount状态或者该实例类型为ASM实例,不接受客户端连接,如果这时候客户端去连接数据库会报ora-12528错误
  • RESTRICED:表示数据库处于RESTRICED模式,不接受普通权限的远程客户端连接,如果这时候客户端去连接数据库会报ora-12526错误


动态与静态区别总结:
1.静态注册(手动填写参数): 状态为 ​​​"Unknown"​​而是通过搜索Listener.ora找到匹配的service后进行注册相应的服务

  • global_dbname对应的是oracle对外的服务名,即初始化参数里的service_names
  • sid_name对应的是oralce实例的名称,即初始化参数里的instance_name

2.动态注册(由PMON进程自动从参数文件获取): 状态为 ​​"READY"​

  • 缺省情况下若启用动态注册监听端口号必须为1521,若启用其他端口的动态监听注册必须要做相关配置即(自定义端口的动态监听注册监听端口)
  • 要实现动态注册,数据库的实例至少要处于nomount状态

注意事项:

  • 静态注册监听客户端在配置tnsnames.ora服务命名时,"(Oracle 8i或更高版本)服务名"里填写内容要与​​服务端静态注册监听器时的全局数据库名一致,​​否则无法连通。
  • 如果在数据库实例启动后再启动监听器(Listener.ora文件中不需要配置相关的SID信息), PMON会自动对监测到的Service进行注册.
  • 实例既可以动态注册也可以同时是静态注册,状态分别显示为READY和UNKNOWN
    Windows下安装Oracle11g数据库_sql_29

0x05 入坑记

问题1:新手面临最容易出错的两个文件
常见目录:C:\app\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
监听配置文件(主):listener.ORA
监听登录配置文件(从):nsnames.ORA (transparence Network Substrate透明网络底层,监听服务是它重要的一部分不是全部,不要把TNS当作只是监听器)

正常监听(连接)配置文件参考
listener.ORA

# listener.ora Network Configuration File: C:\app\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
# listener.ora文件两大模块
# SID_LIST_LISTENER模块:配置监听的静态注册特性,包含数据库服务名、ORACLE_HOME、实例名等信息。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = orcl) #数据库服务名称
(ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1)
(SID_NAME = ORCL) #实例名称
)
)

# LISTENER模块:监听名字、连接协议、监听主机、监听端口等基本配置信息
# 监听默认名字是LISTENER也可以配置别名
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.129)(PORT = 1521))
)
)

ADR_BASE_LISTENER = C:\app\Oracle


tnsnames.ora

# tnsnames.ora Network Configuration File: C:\app\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
#配置远程连接重要参数
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)