oracle数据库连接原理及配置
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.tnsping 查看客户端sqlnet.ora 和tnsname.ora 文件的配置正确与否, 及对应的服务器的listener 进程的状态
3.tnsnames.ora与监听global_dbname与数据库中service_name是否一致 4.查看instance是否已经启动 select instance_name,host_name,status from v$instance;
盲点2: 数据库启动:startup: nomount:启动实例、读取参数文件,DB不可用。
spfileSID.ora->spfile.ora->initsid.ora->init.ora startup pfile=‘’ startup spfile=‘’默认
mount:打开控制文件 open:打开数据文件,重做日志文件
Baidu Nhomakorabea
1.联通前台 2.相亲
四、网络配置文件
1.sqlnet.ora:
一、登陆认证 <Windows> SQLNET.AUTHENTICATION_SERVICES= (NTS) 操作系统认证 SQLNET.AUTHENTICATION_SERVICES= (NONE) 密码文件认证 SQLNET.AUTHENTICATION_SERVICES= (ALL或NTS,NONE) 两者并存, 注释时无效 < Unix/Linux > 注释或者设置ALL选择两者并存;设置成NTS或NONE或(NTS,NONE)都是基于密码验证 二、解析方式: NAMES.DIRECTORY_PATH=(TNSNAMES)默认值 1).Oracle Internet Directory 2)External Naming 3)host naming ---- HOSTNAME SERVEICE_NAME必须和主机名相同 4)Oracle Easy Connect - -- EZCONNECT 5)local naming ----TNSNAMES NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME) 当客户端输入sqlplus sys/oracle@ceshi时, 就会首先在 tnsnames.ora文件中找ceshi的记录(主机名或ip、端口 、服务名).如果没有相应的记录则尝试把ceshi当作一个主机名
数据库名(DB_NAME):数据库的标识(身份证号).
实例名(instance_name):用于和操作系统进行联系的标识.数据库名和实例名是一对一, oracle并行服务器架构(即 oracle实时应用集群)中,数据库名和实例名是一对多的关系.—(期待一级系统部署) ORACLE_SID:是操作系统的环境变量,从操作系统的角度访问实例名. 数据库域名(db_domain ):在数据库名后加(.DB_domain)构成,为保证数据库名在网络中的唯一性, 分布式数据库,如:江西: jx.jtyz 江西上饶:sr.jx.jtyz; 同一环境下,两个数据库的数据库名相同 全局数据库名=数据库名+数据库域名。它唯一标识该数据库,以区别于任何其它数据库. 服务名(service_name):注册监听使用,用于连接实例
2.静态注册:
静态注册时,listener.ora中的GLOBAL_DBNAME向外提供服务名, listener.ora中的SID_NAME提供注册的实例名
注:tnsnames.ora和oracle中的service_name一致
五、监听注册方式
、连接方式
1.sqlplus / as sysdba:
数据库连接原理及配置
2017年11月3日
目录
① 问题抛出
②
③
盲点扫描
监听拓扑结构
④
⑤ ⑥ ⑦ ⑧
网络配置文件
监听注册方式 连接方式 问题解决 排错流程
、问题抛出
、盲点扫描
盲点1:
Oracle server:一个运行着的oracle 数据库就是一个oracle server,此server是 由数据库(Database)和实例(Instance)构成。 Server = Instance+Database Instance = memory(SGA+PGA) + Background Process Database = Datafile+Controlfile + Redologfile
、盲点扫描
盲点3:
oracle不能不说的秘密: DB_NAME 、INSTANCE_NAME、ORACLE_SID、SERVICE_NAME、 GLOBAL_DBNAME、DB_DOMAIN 位置: 在initSID.ora中有DB_NAME,INSTANCE_NAME,SERVICE_NAME 在os中需要配置ORACLE_SID 在listener.ora中有SID_NAME,GLOBAL_DBNAME, 在tnsname.ora中有SERVICE_NAME,SID
、常见问题解决
找到监听,没有找到监听中对应的服务名
没有找到监听:服务器端的监听器没有启动、客户端IP地址或端口填写是否正确
没有找到tnsname.ora
主要网络问题
找到tnsname.ora,找到监听但是账号密码错误
Tnsping ok 只能确定监听端口没有问题
、排错流程
1.lsnrctl status 查看服务器端listener 进程的状态
2.tnsnames.ora:
找到ip或主机名+端口+服务名
3.listener.ora: jdbc:oracle:thin:@136.32.32.118:1521:aiuap
五、监听注册方式
1.动态注册:
ORACLE实例在启动时,或使用命令ALTER SYSTEM REGISTER ,或每隔一分钟,PMON进 程会向监听,把数据库instance_name和service_name进行动态注册。监听启动 $ORACLE_HOME/network/admin/listener.ora读取监听 如果想立刻注册:alter system register;
5.查看数据库是打开还是mount状态 Select open_mode from v$database
三、监听拓扑结构
连接流程: sqlplus aiuap/aiuap#%LW9@ceshi
客户端直接发送sp连接请求—建立连接-用户名、密码发给sp验证-连接成功 启进程sp 并将sp地 址发送给 监听
参考本地
监听发 送请求
监听把 sp地址 发给客 户端
Database Server
转发给实例
Listener
操作系统认证,无需监听,无需数据库可用状态。如startup命令 2. sqlplus username/password: 连接本机数据库,不需要数据库服务器的listener进程,但是由于需要用户名密码的 认证,因此需要数据库服务器处于可用状态才行 3. sqlplus username/password@ceshi a. 查询sqlnet.ora,看看名称的解析方式,默认是TNSNAME b. 查询tnsnames.ora文件,从里边找orcl的记录,并且找到数据库服务器的主机名 或者IP,端口和service_name c. 如果服务器listener进程没有问题的话,建立与listener进程的连接。 d. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下 去的动作。默认是专用服务器模式,没有问题的话客户端 就连接上了数据库的server process。 e. 这时连接已经建立,可以操作数据库了。 4.sqlplus username/password@//host:port/sid 不需要找tnsnames.ora,