这两天配置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进程的历史使命也就完成了。
相关推荐
Oracle开发工具TOAD,及使用说明andTOAD快速入门
Oracle+Toad安装文档
免安装不需要注册码直接使用,对于经常操作oracle数据库直观好用bug少
Toad For Oracle使用教程详细讲解了如何使用Toad For Oracle工具操作数据库。
此文档为toad for oracle安装说明,可以根据该说明进行软件安装
oracle toad汉化包
Toad for Oracle 中文使用指南(权威版),清晰版 ,涵软件安装
2 如果想安装 DBA Suite 其他组件 (例如 SQL Optimizer, Data Modeler, Benchmark Factory, Spolight)可下载 11.6 的DBA下载包 (见附件),安装附件组件, 因为11.6中其他组件除Toad for Oracle 已是目前最新...
Toad for Oracle 9.7.2 Toad for Oracle 9.7.2 Toad for Oracle 9.7.2
Toad for Oracle key Toad for Oracle 12.msi 应用的Key
适用于Toad for Oracle 12.8(32位/64位版),覆盖同名文件之后即是简体中文版,适合喜欢中文环境的同学,可用来汉化我发布的Toad for oracle 12.8.0.49 Development Suite X86/X64(32位/64位)安装注册版。...
oracle最权威工具toad使用大全,本文介绍了toad的使用以及oracle相关的介绍
ORACLE11G64位TOAD创建和导入数据,1、 按照完ORACLE11G64位后,安装TOAD64位。包含下载地址
toad for oracle 11.6 64bit 注册码 for oracle license key
oracle三方工具toad,一款很有用的oracle第三方工具
Toad Development Suite for Oracle 是一个业界领先的数据库开发和管理工具,可以提高生产效率和应用程序代码质量,并且提供交互式社区功能增强用户体验。 还是一个强大、低开销的工具,让数据库和应用的开发更加...
SN of Toad 9.5 for ORACLE SN of Toad 9.5 for ORACLE SN of Toad 9.5 for ORACLE TOAD9.5注册码 可以用的
toad for oracle 13.0最新版,
toad for oracle11 注册码
Toad for Oracle 12.8简体中文语言包,挺好的,有需要的小伙伴可以下载使用