这两天配置Oracle For windows,遇到了很多问题,正因如此,也学到了不少东西,特此记录下,以备后患。不喜勿喷谢谢。
1.Oracle 安装:
从官网上下载安装包:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html ,
Oracle Database 11g Release 2 (11.2.0.1.0) for Microsoft Windows (x64) | ||
win64_11gR2_database_1of2.zip (1,213,501,989 bytes) (cksum - 3906682109) | ||
win64_11gR2_database_2of2.zip (1,007,988,954 bytes) (cksum - 1232608515) |
然后解压到同一目录下,安装即可。
2.安装Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64)
win64_11gR2_client.zip (615,698,264 bytes) (cksum - 2947608743)
|
此客户端是为了访问服务器oracle数据库使用。
3.安装Toad。从http://www.toadworld.com/products/toad-for-oracle下载Toad FOr Oracle。安装即可。
4.下面就要配置Toad远程访问Oracle数据库了。
首先介绍下访问oracle数据库的几种方式:
1.若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变量%ORACLE_HOME%/network/admin/是否设置。
2.本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。请自行google方法。
3。本机未安装oracle服务器,也未安装pl sql development、toad sql development、sql navigator等管理数据库的工具,但是安装了oracle客户端。下面介绍sqlplus命令的一些语法:
一、连接数据库
os:仅仅进入sqlplus环境,不连接数据库
sqlplus /nolog
os:本机连接
方式1:操作系统认证登录:其后的角色不可省略
set ORACLE_SID=TEST_SID sqlplus / as { sysdba | sysoper | sysasm }
方式2:标准用户登录:密码、端口(默认1521)、角色 均可省略。如果密码省略则提示输入密码
set ORACLE_SID=TEST_SID sqlplus 用户[/密码] [ as { sysdba | sysoper | sysasm } ] 或 sqlplus 用户[/密码]@本地oracle服务名 [ as { sysdba | sysoper | sysasm } ] 或 sqlplus 用户[/密码]@主机[:端口]/oracle服务名 [ as { sysdba | sysoper | sysasm } ] 或 sqlplus 用户[/密码]@//主机[:端口]/oracle服务名 [ as { sysdba | sysoper | sysasm } ]
os:远程连接
同“本机连接”的“方式2”(除了set ORACLE_SID方式)
sqlplus:退出到os:默认行为为先commit、再成功退出
{ exit | quit } [ success | failure | warning | n | variable | :bindvariable ] [ commit | rollback ]
sqlplus:断开连接
disc[onnect]
sqlplus:新建连接
-- 提示用户名和密码:仅限本机登录 conn[ect] 或 和“os连接到db”一样
切换用户:
先断开,再重连啊 或 先退出,再登录啊
二、设置sqlplus执行环境
设置环境变量:set
set environment_variable {?}
|
查看环境变量的设置:show
-- 查看所有环境变量的设置 show all --查看指定的环境变量的设置 show environment_variable 或者 --查看指定的环境变量的设置:使用 set
set environment --它会给出相关的语法提示
|
设置信息显示模式
提示符
set sqlp[rompt] "_user'@'_connect_identifier>"
当前os时间
--显示当前的执行时间 set time on --关闭当前的执行时间 set time off
页数、行数
set pages[ize]=500 set lin[esize]=3000
dbms_output的信息显示
--打开显示 set serverout[put] on [ size { n | unlimited } ] [ format { wrapped | word_wrapped | truncated } ] --关闭显示 set serverout[put] off
设置事务控制:
--打开 自动提交事务:立即提交 set auto[commit] { on | imm[ediate] | n } --打开 自动提交事务:累计n个事务后提交 set auto[commit] n
--关闭 自动提交事务 set auto[commit] off
执行时间跟踪
set timi[ng] on
影响的行数
--打开 显示影响行数 set feed[back] { 1 | on | n } --关闭 影响行数 set feed[back] { 0 | off }
执行计划
--显示执行计划 set autot[race] { on | trace[only] } [ exp[lain] ] [ stat[istics] ] --关闭执行计划 set autot[race] off
三、缓冲区执行语句(sql、pl/sql)的编辑处理
调用外部编辑器:ed【it】
ed[it] |
使用sqlplus的编辑命令:增、删、改:a【ppend】、del、c【hange】、i【nput】
a[ppend] --在当前行后直接输入字符创,<span style= "background-color: #ff0000;" >不换行</span>
del --和list类似,见下面 c[hange] --很牛的东东。格式 “ change sep_char<strong>old</strong>[sep_char[<strong> new </strong>[sep_char]]]”:<br> 1)sep_char为不在old和 new 中的非字母数字字符(基本上只能是标点符号)<br> 2)最后的分隔符sep_char可以省略<br> 3)old不区分大小写,即大小写不敏感<br> 4)old可以指定通配符“...”,用来匹配范围:...old(开头 .. 第一次出现)、old...old (前后全匹配)、old...(第一次出现 .. 最后)<br> 5)如果省略第二个分隔符sep_char(自然也省略后面)、或者省略 new (自然也包括后面),则相当于删除old<br>i[nput] --在当前行后,输入新的字符串<span style= "background-color: #ff0000;" ><span style= "background-color: #ffffff;" >,</span>换行</span>
|
更改当前行:默认总是最后一行:l【ist】
--查看所有的行 { list | ; } --查看指定的行:* 为当前行;n在缓冲区行数内 list { n | * | last } --查看指定范围内的行 从 n 到 m 行:m>=n list { n | * } { m | * | last} |
保存sql语句:sav【e】:默认扩展名为sql,默认行为为create。注意:保存后,末尾的分号“;”会自动去掉;而且缓冲区有且仅有一个sql语句或pl/sql复合语句
sav[e] [file] file_name[.ext] [ create | replace | append ] |
载入sql语句:get:与save相反
--与 save 命令相反 |
输入sql语句的过程中,临时退出编辑模式 :以井号“#”临时退出编辑模式
--在输入sql的模式下,如果输入未结束。可以再新行中以井号“#”临时退出编辑模式,进入普通sqlplus的交互模式 |
四、执行结果、替换变量、绑定变量等的 定义、交互、显示、处理
sqlplus的注释命令:rem【mark】
rem[ark] 任何文字 -- 类似于os的rem,或者sql的行注释 “--” |
执行os命令:{ host | !}:具体和os有关
--切换退出sqlplus,进入os的shell环境 { host | ! | $ } --不切换sqlplus,执行os命令
{ host | ! | $ } command |
清理各种历史记录数据:cl【ear】
--清理 屏幕输出信息,类似于os的cls cl[ear] scr[een] --清理 缓冲区sql语句 cl[ear] buff[er] --清理 sql 缓冲池记录 cl[ear] sql --清理 其他 cl[ear] { breaks | computer | columns | timing } |
转存执行结果:spo【ol】
--输出 执行结果到 文件。<span style= "color: #ff0000;" >注意:虽然spool的文件第一时间生成,但其中的结果内容到spool off 才写入!</span><br>spo[ol] filename[.ext] [ create | replace | append ]
--关闭 spool spo[ol] off |
替换变量:sqlplus的【预编译】宏功能,本质很简单:def【ine】、acc【ept】、unde【fine】、pro【mpt】、pau【se】
--定义、重新设置新值 方式1:def[ine] substitution_var = text 方式2:acc[ept] substitution_var [ char | date | [ num[ber] ] | binary_float | binary_double ] --变量类型
[ for [mat] format_str ] --格式
[ default default_value ] --变量的默认值
[ { prompt prompt_text } | nopr[ompt] ] --提示信息
[ hide ] --不显示用户输入,类似于输入不回显密码的输入
--显示指定的替换变量 def[ine] substitution_var --显示 所有的替换变量 def[ine] --sqlplus的提示信息:类似于os的echo pro[mpt] [message_text]<br><br>--sqlplus的暂停提示信息:类似于os的pause<br>pau[se] [message_text] |
sqlplus【预定义的替换变量】:一定要注意:这些预定义替换变量都是可以重新定义或删除定义的。是sqlplus的会话级的
_EDITOR:sqlplus的edit命令调用的os文本编辑器 _USER:sqlplus的当前登录用户名 _CONNECT_IDENTIFIER:sqlplus的当前连接串 _DATE:sqlplus的当前os日期 |
绑定变量:sqlplus中?或者说是oracle引擎的【会话变量?】更为合适
--定义:绑定变量:bind_variable var [iable] bind_variable { number | char | char (n [ byte | char ] ) | varchar2(n [ byte | char ] ) | nchar | nchar(n) | nvarchar(n) | clob | nclob | binary_float | binary_double | refcursor }
--查看:所有定义的绑定变量:定义 var [iable]
--查看:指定名称的绑定变量:定义 var [iable] bind_variable
--打印、输出:所有绑定变量的:内容 print --打印、输出:指定名称绑定变量的:内容 print bind_variable --打印、输出:自动打印所涉及的绑定变量的:内容 : 允许自动打印、输出 set autoprint on
--打印、输出:自动打印所涉及的绑定变量的:内容 : 禁止自动打印、输出 set autoprint off
|
五、执行os脚本
os启动sqlplus时,执行指定的os中sql脚本:sqlplus的启动参数
sqlplus 【options】【logon】 @{URL | filename [.ext] [args...] }<br>--注意“@”符号 |
sqlplus内:运行os中的sql脚本:{ start | @ | @@ }:“@”和“@@”的区别在于“@@”指定sql脚本(父脚本)中的要运行的sql脚本(子脚本),(子脚本)的查询路径就在(父脚本)相同的目录下。当然,如果都用绝对路径,就没区别了。
{ sta[rt] | @ | @@ } { url | os_filename[.ext] } [ arg... ] |
sqlplus内:运行缓冲区内的脚本内容:{ run | /}
{ r[un] | / } |
六、DBA实用功能
显示初始化参数:show parameters
--显示 所有的初始化参数 信息 show parameters --显示 指定的初始化参数信息:like %?% show parameters {?} |
显示SGA信息
show sga |
显示oracle执行错误信息
--显示oracle错误信息代码 show sqlcode --显示【所有oracle错误信息】 show err[ors] --显示【指定类型的对象】的【错误信息】 show err[ors] { function | procedure | package | package body | trigger | view | type | type body | dimension | java class } [schema.<span style= "background-color: #ffffff;" >]<strong>name
</strong></span> |
显示oracle回收站信息
--显示【所有的】回收站信息 show recyc[lebin] --显示 【指定的原始对象名】的回收站信息 show recyc[lebin] original_name |
startup:语法
startup [ <strong>[ force ] [ restrict ] [ pfile=filename ] [ quiet ]</strong> [ { nomount | mount [dbname] | open [ read { only | write [recover] } | recover ][dbname] } ] ]<br><br>--force:强制关闭(abort模式)正运行的oracle数据库实例,之后重启。警告:危险的操作,生产环境慎用<br>--restrict:进入restrict session 权限的连接模式<br>--pfile:以指定的pfile启动<br> [filename]:替代默认的启动spfile或缺省pfile<br>--quiet:启动后,不显示sga信息<br>[dbname]:替代初始化参数中的 DB_NAME 配置 |
启动:仅实例,nomount数据库
startup nomount |
启动:实例,mount数据库
startup mount |
启动:实例,read only只读打开数据库
startup open read only |
启动:实例,read write 打开数据库:即正常的打开方式
startup open read write<br><strong>startup open</strong> |
启动:实例,介质恢复模式打开:等价于:recover database 命令 + startup命令
startup open recover ???????????? |
关闭:shutdown
--异常关闭:类似于断电:(1)不征求客户端同意,立即断开连接;(2)启动必须恢复 shutdown abort --立即关闭:(1)立即断开客户端连接;(2)启动无需恢复 shutdown immediate --正常关闭:(1)等待客户端主动断开连接;(2)启动无需恢复;(3)未完成事务回滚; <strong>shutdown</strong> [ normal ] --谨慎关闭:(1)等待客户端主动断开连接;(2)启动无需恢复;(3)且等待事务完成; shutdown transaction |
恢复:recover
日志归档:archive log
copy数据:copy
修改当前用户密码:不指定用户名,即为当前用户
passw[ord]
修改其他指定用户密码:指定用户名
passw[ord] { username }
4.本机未安装ORACLE服务器,但是安装了oracle客户端,也安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。需要配置客户端和服务端的三个ora格式的配置文件:1)listener.ora
2)sqlnet.ora
3)tnsnames.ora
1)sqlnet.ora(客户及服务器端)
作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串,
例如我们客户端输入
sqlplus sys/oracle@orcl
假如我的sqlnet.ora是下面这个样子
- SQLNET.AUTHENTICATION_SERVICES= (NTS)
- NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那么,客户端就会首先在tnsnames.ora文件中找orcl的记录,如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例。当然我这里orcl并不是一个主机名
如果我是这个样子
- NAMES.DIRECTORY_PATH= (TNSNAMES)
那么客户端就只会从tnsnames.ora查找orcl的记录
括号中还有其他选项,如LDAP等并不常用。
2)Tnsnames.ora(客户及服务器端)
这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似
NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。
例子如下:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
3)listener.ora(服务器端) --listener监听器进程的配置文件
关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
Listener.ora文件的例子 :它只存在于服务器上。
# listener.ora Network Configuration File: D:\app\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = Ip)(PORT = 1521))
)
)
ADR_BASE_LISTENER = D:\app\oracle
上面的例子是一个最简单的例子,但也是最普遍的。一个listener进程为一个instance(SID)提供服务。
监听器的操作命令
$ORACLE_HOME/bin/lsnrctl start
其他诸如stop,status等。具体敲完一个lsnrctl后看帮助。
上面说到的三个文件都可以通过图形的配置工具来完成配置
- $ORACLE_HOME/netca 向导形式的
- $ORACLE_HOME/netmgr
- profile 配置的是sqlnet.ora也就是名称解析的方式
- service name 配置的是tnsnames.ora文件
- listeners配置的是listener.ora文件,即监听器进程
具体的配置可以尝试一下然后来看一下配置文件。
这样一来总体结构就有了,是当你输入sqlplus sys/oracle@orcl的时候
- 查询sqlnet.ora看看名称的解析方式,发现是TNSNAME
- 则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name
- 如果listener进程没有问题的话,建立与listener进程的连接。
- 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。
- 这时候网络连接已经建立,listener进程的历史使命也就完成了。
相关推荐
1. **数据库连接**:Toad for Oracle 10g允许用户轻松地连接到任何Oracle数据库实例,无论是本地还是远程。它支持多种身份验证机制,包括操作系统认证、网络服务名和直连方式,确保了灵活和安全的访问。 2. **图形...
安装的Oracle客户端版本应与Toad for Oracle版本兼容,并且建议客户端版本应与数据库服务器版本相同或更高,以防止性能问题。Toad for Oracle对Oracle的客户端版本有明确的兼容性要求,例如,对于32位Oracle客户端,...
1. 数据库连接与管理:Toad for Oracle 12.8支持多种连接方式,允许用户轻松连接到本地或远程的Oracle数据库实例。用户可以管理多个数据库连接,进行数据库对象的浏览、编辑和创建,包括表、视图、存储过程、触发器...
Toad for Oracle能够与Oracle Instant Client搭配使用,实现对远程Oracle数据库的访问。用户在安装Toad时,可能需要配置Instant Client的路径,以便Toad能够利用其进行通信。 5. **持续更新与优化**: 随着Oracle...
- 安装过程中可能需要根据网络状况设置代理,以便访问Oracle的更新和补丁。 - 如果遇到连接问题,检查防火墙设置,确保1521端口是开放的。 通过以上步骤,你应该能够成功安装并设置Oracle Instant Client,从而在...
Oracle客户端是用于与Oracle数据库服务器进行交互的工具集合,它为开发者和DBA提供了便捷的数据访问和管理方式。"Oracle客户端一键安装" 提供了一种简化安装过程的解决方案,尤其适用于那些希望快速设置并开始工作的...
- 安装完成后,还需要通过Oracle Net Configuration Assistant (NETCA)来配置网络服务,以便能够远程访问数据库。 9. **数据库配置助手(DBCA)**: - 使用DBCA创建一个新的数据库实例,并根据需要设置参数,如...
Oracle无客户端连接是一种技术,它允许用户访问Oracle数据库而无需在本地计算机上安装完整的Oracle客户端软件。这种技术基于轻量级的接口或第三方工具,使得系统管理员、开发人员和其他需要与Oracle数据库交互的用户...
5. **OCCI(Oracle Call Interface for C++)**:为C++开发者提供的API,便于在C++程序中访问Oracle数据库。 6. **OCI-JDBC桥**:使得Java应用程序可以通过JDBC接口连接到Oracle数据库。 7. **预编译器**:允许将...
这个“oracle11g 客户端文件包”是一个特别的版本,它不需要进行传统的安装过程,而是通过解压缩即可使用,这极大地简化了部署流程,特别是对于那些只需要临时或移动访问Oracle数据库的用户来说非常方便。...
1. **下载与安装**: - 访问Oracle官方站点下载Oracle Instant Client的对应版本,根据操作系统(Windows、Linux、macOS等)和所需组件选择合适的包。 - 解压缩下载的文件到指定目录,无需执行复杂的安装过程。 2...
Oracle 11g客户端是Oracle数据库的一个重要组成部分,它允许用户和应用程序在本地与远程Oracle数据库服务器进行交互,而无需在每台计算机上都安装完整的数据库服务器。在本压缩包中,你将找到必要的文件来执行Oracle...
Oracle 9i Client是Oracle公司推出的数据库访问工具,主要用于与Oracle数据库服务器进行通信。这个安装包,"Oracle9i310 客户端安装包",包含了所有必要的组件,使得用户可以在客户端计算机上安装,以便连接到远程的...
oci.dll是这个接口的关键动态链接库,使得开发者能在本地或远程访问Oracle数据库。 2. **sqlplus**: SQL*Plus 是一个命令行工具,允许用户输入SQL语句和PL/SQL块来查询、更新和管理Oracle数据库。它是数据库管理员...
描述中的"无需安装客户端即可连接oracle服务器"进一步强调了这一技术特点,意味着用户可以通过轻量级的手段或者云服务来访问Oracle数据库,减轻了本地系统的负担,提高了灵活性。这种方法对于移动办公、临时项目或者...
除此之外,客户端还提供了一套完整的开发工具集,例如ODAC(Oracle Data Access Components),它是.NET开发者用于访问Oracle数据库的组件,包括Oracle Developer Tools for Visual Studio。这些工具支持多种编程...
Oracle Database Instant Client是Oracle公司提供的一种轻量级的数据库连接工具,主要用于在不安装完整Oracle数据库服务器的情况下,实现对Oracle数据库的访问和管理。本文将详细介绍Oracle Database Instant Client...
5. **安装与配置**:安装这个客户端时,需要按照向导指示进行,包括选择安装类型(典型、定制)、设置环境变量(如ORACLE_HOME、PATH)、配置网络服务(如TNSNames.ora),以及注册Oracle服务以便于启动和停止数据库...
这篇文档将带你深入了解Oracle数据库的安装、配置以及卸载过程,适用于初次接触Oracle的开发人员。 一、Oracle数据库安装 1. 系统需求:在安装Oracle之前,确保你的操作系统满足Oracle的最低硬件和软件要求。通常...
在本文中,我们只覆盖了安装准备和基础环境的搭建,Oracle 11g的完整安装过程还包括更多的细节和配置,如Oracle的初始化参数文件(init.ora)、数据库的备份与恢复策略、性能优化等。因此,建议在实际操作时参照官方...