文档库 最新最全的文档下载
当前位置:文档库 › Oracle Net配置、工作原理及常见错误分析

Oracle Net配置、工作原理及常见错误分析

Oracle Net配置、工作原理及常见错误分析
Oracle Net配置、工作原理及常见错误分析

Oracle Net配置、工作原理及常见错误分析

(2007-02-27 10:15:19)

转载

oracle10g安装之后,并且创建了ORACLE数据库之后,如果没有使用netca配置ORACLE NET,或者说,没有配置listener.ora,tnsnames.ora,sqlnet.ora这几个文件,那么oracle数据库也是可以正常启动,关闭的.也就是说oracle数据库的运行并不依靠ORACLE NET 组件.可以使用sqlplus /nolog-->connect as sysdba--> startup/shutdown来启动和关闭数据库.

但是当一个客户程序(位于oracle数据库所在计算机或是其他联网计算机)想要访问ORACLE数据库时,就要配置ORACLE NET.可以通过ORACLE提供的图形界面工具netca;或者手工修改上面提到的三个配置文件来完成.

方法一:手工修改三个配置文件配置ORACLE NET

1)在数据库服务器上编辑$ORACLE_HOME/network/admin/listener.ora,定义监听器.加入如下内容:

MYLISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST= HOSTNAME.DOMAINNAME/HOST

IP) (PORT=1521))

)

)

其中:MYLISTENER是监听器名字,可以是任意字符;

缺省通信协议是TCP

HOSTNAME是本机的主机名,DOMAINNAME是其域名,也可以填写本机的IP地址.

缺省监听端口是1521

2)在客户端计算机上安装ORACLE客户端软件.(如果该计算机上安装有oracle数据库,则不必再安装oracle客户端.将3),4)中的$ORACLE_CLIENT_HOME改为$ORACLE_HOME即可).

3)编辑客户端计算机上的文件$ORACLE_CLIENT_HOME/network/admin/sqlnet.ora,指定命名方法.这里我们使用本地命名(Local Naming).加入如下行:

NAMES.DIRECTORY_PATH=(TNSNAMES)

4)编辑客户端计算机上的文件$ORACLE_CLIENT_HOME/network/admin/tnsnames.ora,定义NET SERVICE NAME.加入如下行:

BOB =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME.DOMAINNAME/HOST

IP)(PORT=1521))

)

(CONNECT_DATA =

(SERVICE_NAME = bob)

)

)

其中BOB是你指定的NET SERVICE NAME;

PROTOCOL:缺省通信协议是TCP;

HOST:想要连接的数据库服务器的主机名.域名或其IP

PORT:数据库服务器上listener所监听的端口号.必须与数据库服务器上listener.ora中定义的PORT一致.

SERVICE_NAME:oracle数据库服务名,缺省情况下和创建数据库时定义的数据库全局名(database global name)一致.

方法二:使用netca图形界面工具进行配置:

1)在数据库服务器上,使用netca命令启动ORACLE NET配置工具;

2)选择第一项listener配置.为监听器起一个名字,其他选项均为缺省设置.

3)在客户端计算机上,使用启动ORACLE NET配置工具;

4)选择第二项naming method配置-->选择local naming-->其他选项均为缺省设置.

5)选择第三项local net service name配置-->输入服务名(想要访问的数据库的全局数据库名)-->输入数据库服务器的主机名/IP、PORT(缺省1521)-->输入net_service_name,可以任意.

6)如果是在数据库服务器上使用客户程序访问本机数据库,则直接使用netca配置工具进行第一,二,三项的配置即可.

实际上使用netca图形界面进行的一,二,三项配置,分别就是编辑

listener.ora,sqlnet.ora,tnsnames.ora.两种方法的效果是等价的.

下面我们测试以下oracle net是否配置成功.

1)在数据库服务器上启动数据库:sqlplus "/as sysdba"-->startup

2)在数据库服务器上启动监听器:lsnrctl start

3)在客户端计算机上,在命令行模式下输入如下命令:sqlplus sys/passwd@BOB

其中BOB是你在tnsnames.ora中定义的net_service_name.

当客户端程序发出请求串username/passwd@net_service_name之后,oracle NET 组件首先在本地查找sqlnet.ora文件确定命名方法,这里假设为local naming,则sqlnet.ora中内容如下:NAMES.DIRECTORY_PATH=(TNSNAMES).oracle NET紧接着查找tnsnames.ora,读取该文件,匹配net_service_name.如果该net_service_name匹配失败,则提示错误;如果成功则根据connect descriptor中protocol,host,port信息发给正确的listener.listener再根据connect descritpor中的service_name与向它注册了的oracle services 进行比对.如果比对成功, 则建立连接,否则提示错误.

oracle数据库库网络连接常见错误分析:

oracle10g安装之后会默认的也安装listener.如果listener处于关闭状态,则客户端程序将无法连接到数据库提供的服务,也就是说运行中的oracle数据库服务(包括ORACLE数据库实例)将处于孤立状态.这时如果使用客户程序进行连接,会报ora-12154错误,提示:no listener.可以理解为没有守侯者接受该连接请求.(任何客户端对数据库的请求都会首先发给listner,然后由listener转发给已经向其注册过的相应数据库服务.)当使用lsnrctl start 命令启动listener之后,系统中运行的服务(包括数据库实例)会自动的向listener注册自己.这时使用listener status命令,会发现listener监听的服务由原来的support no services变成了系统中运行实例的servcies name 列表.这个动态注册过程大概在一分钟之内完成(在笔者的系统环境下).在数据库启动,listener也启动,并且数据库向listener注册自己之后.这时如果使用客户程序比如sqlplus连接数据库,命令如下sqlplus username/passwd@NET_SERVICE_NAME as sysdba ,系统提示ora_12514:TNS:listener does not currently know of service requested in connect descriptor.这是

因为在连接串中的NET_SERVICE_NAME所代表的Connect description不能被listener识别.如果命名方法使用的是local naming 的话,这时可以编辑位于

$ORACLE_HOME/network/admin/tnsnames.ora,加入对NET_SERVICE_NAME的定义.以后,就可以在连接标识串中使用该NET_SERVICE_NAME连接数据库.

几个概念:

1)oracle SERVICE NAME:oracle 服务名,缺省情况下就是oracle global name:orale全局名(在使用DBCA创建数据库时指定).因此每一个数据库实例都有一个SERVICE name.可以使用sqlplus show parameter service_name来查找数据库实例的服务名.

2)oracle net service name:oracle 网络服务名.使用netca工具,配置local net service naming 时需指定的一个名字.也对应了TNS中的一个名字解析段.

该段格式为:net_service_name = connection descriptor;它经常被用在客户端连接服务器时,请求串中的connection identifier(如果命名方法是local naming).

3)connection string:连接串.客户端连接ORACLE database时,要指明该串.连接串包括username,passwd,a connect identifier.格式如下:

a)如使用local naming:

CONNECT username/passwd@connect identifier .其中Connec identifier可以是connect descriptor,也可以是net service name,该名字可以被解析为connect descriptor.

b)easy connect naming:

connect username/passwd@host[:port][/service_name]

比如: sys/syspasswd@octopus:1521/BOB

4)connection descriptor:oracle 连接描述串

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=my-server) PORT=1521))

(CONNECT_DATA=

(SERVICE_NAME=https://www.wendangku.net/doc/c017056459.html,)))

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

OracleRAC体系结构与优势

Oracle 10g RAC应用分析 高性能服务器产品部徐斌 2008-12-12

目录 引言 (1) 一、什么是ORACLE RAC? (2) 二、Oracle RAC体系结构 (2) 1.Oracle集群件 (3) 2.硬件体系结构 (3) 3.文件系统和卷管理 (4) 4.虚拟互联网协议地址(VIP) (4) 5.集群验证实用程序 (5) 6.远距离集群RAC (5) 三、ORACLE RAC的优势 (6) 1.高可用性 (6) 2.可伸缩性 (7) 四、管理ORACLE真正应用集群数据库 (8) 1.Enterprise Manager 10g (8) 2.滚动补丁应用 (9) 3.滚动版本升级支持 (9) 五、使用真正应用集群进行负载管理 (10) 1.服务 (10) 2.连接负载均衡 (11) 3.快速应用程序通知(FAN) (11) 4.负载均衡顾问程序 (11) 六、Oracle RAC并行服务器与双机热备份的比较 (12) 七、总结 (14) 八、部分官方技术问答 (14) 1.为什么说Oracle Real Application Clusters 10g 要远远超过它的竞争对手? (14) 2.Oracle RAC的典型硬件配置是什么样的? (15) 3.SQL Server和IBM DB2都有active-active的故障切换方式,为什么我要采用Oracle Real Application Cluster 10g? (15) 4.我的分布式应用系统运行非常好,为什么我要把我的数据库进行集中? (16) 5.我们已经有了集群硬件环境,并且可以进行应用的切换,为什么我还需要Oracle Real Application Clusters 10g? (16) 6.我们使用Data Guard来实现故障切换,为什么我还需要Oracle Real Application Clusters 10g? (16) 7.为什么选择Linux?为什么选择Linux环境下的Oracle Real Application Clusters 10g? 17

Oracle环境搭建与配置

金证科技 基金投资交易管理系统(KPMS)Oracle环境搭建与配置

目录 1安装oracle数据库 (3) 2oracle 相关设置 (5) 2.1在oracle上创建kpms数据库和用户 (5) 2.2Oracle数据库导出 (7) 2.3Oracle数据库重新导入数据 (7) 3配置KCXP、KCBP_ORACLE (8) 4系统升级 (10)

1安装oracle数据库 1运行setup.exe,出现如图1所示的画面,选择安装目录,全局数据库名默认为orcl,输入数据库口令123,单击下一步; 图1 2一直按默认值单击下一步或安装,直到出现如图2所示的画面:

图2 图3 3若要修改口令,单击口令管理,解锁要用的用户,解锁后也可重新设置口令(一般设置为默认如图3),确定后显示画面如图4,单击退出安装完成。 图4

4(此非必操作项)安装完成后,自动弹出如图5的画面,可以输入未锁定的用户名system,口令123(安装时输入的数据库口令),连接身份Normal;也可以输入用户名sys,口令123,此连接须是SYSDBA 或SYSOPER,登陆后点击同意即可。 图5 2oracle 相关设置 2.1在oracle上创建kpms数据库和用户 1在运行中输入cmd,进入命令提示符窗口; 2输入“sqlplus /nolog”进入sqlplus环境(如图6); 图6

3输入“connect / as sysdba”,以系统管理员(sysdba)的身份连接数据库; 4输入“create tablespace kpmsdata logging datafile 'd:\kpms_data01.dbf' size 1024m;”,在D 盘创建表空间kpmsdata; 5输入“create user kpms identified by kpms default tablespace kpmsdata temporary tablespace temp;”创建用户kpms,口令为kpms; 6输入“grant connect,resource to kpms;”为用户kpms授权; 7同上,以相同方式创建历史数据库及其对应的用户,依次输入如下: 1>create tablespace kpmshisdata logging datafile 'D:\kpmshis_data01.dbf' size 1024m; 2>create user kpms_his identified by kpms_his default tablespace kpmshisdata temporary tablespace temp; 3>grant connect,resource to kpms_his; 8在授权成功后输入“exit”退出sqlplus环境; 9如果是搭建本地环境,须要导入数据库,如数据库的备份文件路径为“e:\123.dmp”,则依次输入如下命令(如图7): 0>grant dba to username; 1>imp kpms/kpms 2>e:\123.dmp 3>kpms (注:此处kpms是备份数据库的用户名) 导入成功后,会提示“成功终止导入,没有出现警告”; 图7 10打开【net manager】,添加【服务命名】:任意输入网络服务名(如orcl)—TCP/IP协议—输入主

oracle数据库安装及其配置规范标准v0

Oracle数据库系统安装及配置规范 2015-10

目录 1. 数据库物理设计原则 (5) 1.1. 数据库环境配置原则 (5) 1.1.1. 操作系统环境 (5) 1.1.2. 内存要求 (5) 1.1.3. 交换区设计 (5) 1.1.4. 其他 (6) 1.2. 数据库设计原则 (6) 1.2.1. 数据库SID (6) 1.2.2. 数据库全局名 (6) 1.2.3. 数据库类型选择 (6) 1.2.4. 数据库连接类型选择 (7) 1.2.5. 数据库SGA配置 (7) 1.2.6. 数据库字符集选择 (8) 1.2.7. 数据库其他参数配置 (9) 1.2.8. 数据库控制文件配置 (9) 1.2.9. 数据库日志文件配置 (10) 1.2.10. 数据库回滚段配置 (10) 1.2.11. 数据库临时段表空间配置 (11) 1.2.12. 数据库系统表空间配置 (11) 1.3. 数据库表空间设计原则 (11) 1.3.1. 表空间大小定义原则 (11) 1.3.2. 表空间扩展性设计原则 (12) 1.4. 裸设备的使用 (12) 2. 数据库逻辑设计原则 (13) 2.1. 命名规范 (13) 2.1.1. 表属性规范 (13) 2.1.2. 索引 (14) 2.1.3. 视图 (15) 2.1.4. 实体化视图 (15) 2.1.5. 存储过程 (15) 2.1.6. 触发器 (15) 2.1.7. 函数 (16) 2.1.8. 数据包 (16) 2.1.9. 序列 (16) 2.1.10. 表空间 (16) 2.1.11. 数据文件 (16) 2.1.12. 普通变量 (16) 2.1.13. 游标变量 (17) 2.1.14. 记录型变量 (17) 2.1.15. 表类型变量 (17)

Oracle10g客户端安装与配置说明

Oracle10g客户端安装与配置说明 一、Oracle客户端安装 将oracle10g客户端虚拟光盘插入虚拟光驱中,系统自动弹出Oracle10g安装界面,选择开始安装。 1)出现【安装】界面,单击[开始安装]按钮。如下图所示: (图示安装) 2)出现【DOS】界面,等待片刻。如下图所示: (图示 DOS) 3)出现【欢迎使用】界面,单击[下一步]按钮。如下图所示:

(图示欢迎使用) 4)出现【选择安装类型】界面,此处以选择‘管理员’选项安装为例,单击[下一步] 按钮。如下图所示: (图示选择安装类型) 5)出现【安装目录】界面,选择安装路径,单击[安装]按钮。如下图所示:

(图示安装目录) 6)出现【产品特定的先决条件检查】界面,检测是否符合安装条件,单击[下一步] 按钮。如下图所示: (图示产品特定的先决条件检查) 7)出现【概要】界面,单击[下一步]按钮。如下图所示:

(图示概要) 8)出现【安装】界面,单击[下一步]按钮。如下图所示: (图示安装) 9)出现【本地服务配置】界面,暂时先不配置,单击[取消]按钮即可,若要配置,操 作见Oracle客户端配置。如下图所示:

(图示本地服务配置) 10)出现【安装结束】界面,单击[退出]按钮即可完成安装。如下图所示: (图示安装结束) 二、Oracle客户端配置 1)单击“开始→程序→Oracle - OraClient10g_home1→配置和移植工具→Net Manager”菜单。如下图所示:

(图示启动Oracle) 2)出现【本地配置】界面中添加数据库,先选择‘Oracel net配置→本地→服务命 名’,再单击窗口左上角的“+”或单击‘编辑→创建’,打开【Net 服务命向导:欢迎使用】界面中输入“Net 服务名”,然后单击[下一步]。如下图所示: (图示本地配置) 注意:网终服务名应与服务器的服务名设置一致,否则流程表单打不开。并记住此服务名,后续的杰思科地籍管理信息系统连接需要使用。 3)出现【选择协议】界面,设置TCP/IP(Internet协议),然后单击[下一步]。如下 图所示:

企业服务总线Oracle Service Bus的安装和配置过程详解

Oracle Service Bus安装和配置过程详解安装Oracle Service Bus 1:下载Oracle Service Bus 你可以在https://www.wendangku.net/doc/c017056459.html,/alservicebus/上下载,或者直接访问https://www.wendangku.net/doc/c017056459.html,。建议尽量下载最新版本的。本说明书基于Oracle Service Bus 10gR3(安装文件:192.168.1.15/E:/OSB/Oracle Service Bus 10gR3--osb103_wls103_win32.exe)2: 双击该exe文件, 启动安装程序之后出现启动界面,等待一会后,出现欢迎界面,单击"Next"。 3.选择OSB的安装目录,这里保持默认值C:\bea,单击"Next"。(你也可以选择别的安装目录) 4.在安装类型选择界面中,如果需要安装OSB的Example,则需选择Custom类型,否则选Typical类型(建议你安装Example) 5.出现选择产品和组件界面,勾选Examples选项如下图所示。 6.勾选需要绑定的JDK,点击"Next"。 7:设置Weblogic Server、Workshop、Oracle Service Bus的安装目录,保持默认值即可,单击"Next"。(安装osb包括3部分,1:Weblogic Server10g,2:Workshop开发工具,3:Oracle Service Bus)

10.接下来都保持默认值,单击"Next"即可。(安装过程大有微软产品之风,相当easy,基本上一路next就ok) 配置Oracle Service Bus(创建OSB的Domain) 1:启动“Configuration Wizard”创建新域。Configuration Wizard 位于/wlserver_10.3/common/bin目录中。运行config.exe(Windows 平台) 2.弹出Oracle WebLogic的配置欢迎界面,点选"Create",单击"Next"。 3.如下图所示,在"选择Domain Source"界面中勾选"Workshop"和"OSB",单击"Next"。

oracle命令行大全

SQL*PLUS命令的使用大全 Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus 语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。 下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MA T] format

oracle 查看用户、权限、角色

查看用户、权限、角色的命令和视图 a 1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户系统权限: select * from dba_sys_privs; select * from session_privs; select * from user_sys_privs; 3.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 4.查看所有角色: select * from dba_roles; 5.查看用户所拥有的角色: select * from dba_role_privs; select * from user_role_privs; b 概述 与权限,角色相关的视图大概有下面这些: DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 查询当前用户所拥有的系统权限 SESSION_PRIVS: 查询当前用户所拥有的全部权限 ROLE_SYS_PRIVS:查询某个角色所拥有的系统权限 注意: 要以SYS用户登陆查询这个视图,否则返回空. ROLE_ROLE_PRIVS: 当前角色被赋予的角色 SESSION_ROLES: 当前用户被激活的角色 USER_ROLE_PRIVS: 当前用户被授予的角色 另外还有针对表的访问权限的视图: TABLE_PRIVILEGES ALL_TAB_PRIVS ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限 oracle与用户角色权限相关的视图 Oracle 本身的数据字典设计我个人觉得很合理, 因为DBA_xxx, ALL_xxx,USER_xxx 让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图. 一. 概述 与权限,角色相关的视图大概有下面这些: 1、DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限。 2、USER_SYS_PRIVS: 查询当前用户所拥有的系统权限。

Oracle-SQL简单查询语句处理

Oracle-SQL简单查询语句处理笔记一 数据处理及进展–数据:是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据处理:是指对各种形式的数据进行收集、储存、加工和传播的一系列活动的综合。 其目的是从大量的、原始的数据中抽取、推导出对人们有价值的信息。 数据处理的3个阶段: ?人工管理阶段 ?文件系统阶段 ?数据库系统阶段 关系型数据库 ?数据模型–是数据库系统中,用于抽象、表示、处理现实世界中数据的一种形式架构。 ?数据模型三层次 概念模型:是现实世界到信息世界的第一层抽象,常用E-R 图表示。逻辑模型:是用户从数据库所看到的模型,是具体的DBMS 所支持的数据模型,常用的包括层次模型、网状模型、关系模型。

物理模型:是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且 V1.0 还与操作系统和硬件有关 关系型数据库 ?关系模型 关系模型有关系数据结构、关系操作集合和关系完整性约束三部分组成的。 关系数据结构:在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。 在用户看来,关系就是一张由行和列组成的二维数据表。 关系操作:包括:选择、投影、连接、增加、删除、修改等。 关系完整性约束:包括实体完整性、参照完整性和用户定义的完整性。 算术运算符? 算术运算符优先级 乘除优先于加减 相同优先权的表达式按照从左至右的顺序依次计算 括弧可以提高优先权,并使表达式的描述更为清晰 空值NULL

?空值NULL –空值是指一种无效的、未赋值、未知的或不可用的值。 空值不同于零或者空格。 列别名 好处:方便查看 用来重新命名列的显示标题,如果SELECT语句中包含计算列,通常使用列别名来重新定义列标题。 ?使用列别名的方法 方式1:列名列别名 方式2:列名 AS 列别名 ?以下三种情况列别名两侧需要添加双引号 列别名中包含有空格 列别名中要求区分大小写 列别名中包含有特殊字符 连接操作符使用 || 去连接,相当于java中的 + 号呢。 消除重复行使用DISTINCT 关键字 习题整理一:简单的查询语句(查询oracle已经创建的表格,使用用户scott普通用户登陆) 说明:

ORACLE RAC日常管理和维护

ORACLE RAC日常管理 1、最常用、最重要的命令: 首先登陆的服务器然后执行su-oracle 关闭集群:$crs_stop–all ps–ef|grep ora 查看是否还有ora开头的进程,没有后方可关机。 启动集群:$crs_start-all 启动完集群后可以用如下命令检查集群状态,所有的服务都要是ONLINE才是正常的,如下[root@node1bin]$crs_stat-t Name Type Target State Host ------------------------------------------------------------ ora....w1.inst application ONLINE ONLINE node1 ora....w2.inst application ONLINE ONLINE node2 ora.cjw.db application ONLINE ONLINE node1 ora....SM1.asm application ONLINE ONLINE node1 ora....E1.lsnr application ONLINE ONLINE node1 ora.node1.gsd application ONLINE ONLINE node1 ora.node1.ons application ONLINE ONLINE node1 ora.node1.vip application ONLINE ONLINE node1 ora....SM2.asm application ONLINE ONLINE node2 ora....E2.lsnr application ONLINE ONLINE node2 ora.node2.gsd application ONLINE ONLINE node2 ora.node2.ons application ONLINE ONLINE node2 ora.node2.vip application ONLINE ONLINE node2 ps–ef|grep ora 下面是一些简介,了解一下就可以了,有时间可以深入研究。 一、Oracle RAC简介: Oracle RAC支持Oracle数据库在集群上运行真正的应用程序。此处的真正应用是指RAC能够支持所有类型的主流商业应用程序。这包括流行的封装产品,如SAP、PeopleSoft

Oracle 8i 安装与配置

Oracle 8i for NT/WIN2000安装与配置 经过本章的学习您应该掌握: ●服务器端的安装、服务的启动、卸载; ●客户端安装 ●客户端的连接配置 ●国强财务软件中帐套管理及环境配置 ●工具介绍 ●附录:SQL*PLUS常用命令列表 本文档摘自https://www.wendangku.net/doc/c017056459.html, ,部分安装画面不全请到网站查询。 一、服务器端的安装 安装之前,请注意: 1、关闭所有正在运行的程序 2、规划一个磁盘,至少需要1000MB的硬盘空间 安装开始: 下载oracle816nt.zip(441MB),用Winzip解压缩到C:\oracle816nt目录下,双击setup.exe程序这时系统出现以下画面一 稍等一会,出现“欢迎”画面二

点击“已安装产品”,出现画面三 如果以前安装过Oracle的一些产品,此处会显示出产品列表,本例以前没有安装过其他产品,点击“关闭”,单击“下一步”,出现画面四 出现文件定位画面, 来源路径为C:\oracle816nt\stage\products.jar 目标路径为D:\Oracle\Ora81 单击“下一步”,出现画面五 系统显示“正在装载产品列表”,进度进行到100%时,出现画面六 选择“Oracle8i Enterprise Edition 8.1.6.0.0”,单击“下一步”,出现画面七

选择“安装类型”为“典型(1001MB)”,单击“下一步”,出现画面八 屏幕右上角出现进度条,进度进行到一定程度时,出现画面九 系统提示,请输入“数据库标识” 本例输入,全局数据库名:oradb,SID值自动随着全局数据库名变化,可以更改单击“下一步”,出现画面十一 屏幕右上角进度条继续前进,达到100%时,出现画面十二 出现摘要画面,对你想要安装的产品作一个总结,单击“安装”,出现画面十三 开始正式安装系统文件,进度条不断前进,耗时一般在1个小时左右, 进度条达到100%时,出现画面十四 画面十五 数据库开始创建,进度达到100%时,出现画面十六 数据库创建完成,显示数据库的一些基本信息,包括: 数据库名:oradb 数据库系统标识符(SID):oradb SYS 帐户口令:change_on_install SYSTEM 帐户口令:manager 单击“确定”,出现画面十七 安装结束,单击“退出”,出现画面十八

oracle 经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

Oracle_RAC知识汇总

一、Oracle RAC原理 ORACLE RAC原理在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问我们的共享存储设备。 逻辑结构上看,每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communication layer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cache。 二、RAC中的特点是: 每一个节点的instance都有自己的SGA 每一个节点的instance都有自己的background process 每一个节点的instance都有自己的redo logs 每一个节点的instance都有自己的undo表空间 所有节点都共享一份datafiles和controlfiles Oracle还提出了一个缓存融合的技术(Cache fusion) 目的有两个 1.保证缓存的一致性 2.减少共享磁盘IO的消耗 因此在RAC环境中多个节点保留了同一份的DB CACHE 缓存融合(Cache fusion)工作原理: -**************************************** 1.其中一个节点会从共享数据库中读取一个block到db cache中 2.这个节点会在所有的节点进行交叉db block copy 3.当任何一个节点缓存被修改的时候,就会在节点之间进行缓存修改 4.为了达到存储的一致最终修改的结果也会写到磁盘上 三、ClusterWare组件 ******************* 有四种Service Crsd - 集群资源服务 Cssd - 集群同步服务 Evmd - 事件管理服务 oprocd - 节点检测监控 有三类Resource VIP - 虚拟IP地址(Virtual IP) OCR - Oracle Cluster Registry(集群注册文件),记录每个节点的相关信息

oracle 创建create user 及授权grant 查看登陆的用户

oracle 创建create user 及授权grant 查看登陆的用户: 以下都可以: show user; select sys_context('userenv','session_user') from dual; select user from dual; 查看所有登录的用户必须为DBA 用户: select username from v$session; sys、system等DBA 用户查看其他用户(test)中的对象(表): SQL> select * from test.student; 创建一个普通用户都把该用户用起来的流程: 1、创建用户 SQL>create user test indentified by test; 这样就创建了一个用户名密码都为test的用户 但这个时候test还是不能登陆成功的,我们需要赋予相应的权限 2、赋予create session的权限 SQL>grant create session to test; 这样test用户就能成功登陆进去 但是此时用户还是不能创建表我们需要赋予用户创建表的权限: SQL>grant create table to test; 但是用户此时还不能创建表因为需要有使用表空间的权限(相当于用户有了进房间的钥匙但是没有进大门的钥匙。。。) 所以也应该赋予相应的权限 SQL>grant unlimited tablespace to test; 这个时候用户就拥有了创建表的权限由于表是用户test的相应的他就拥有了对创建的表的增删查改的权限了 3、查看用户拥有什么权限可以通过查询一个系统的视图(数字字典) SQL>select * from user_sys_privs; 这样就可以知道当前用户的权限 4、撤销权限 SQL> revoke create table from test; ----------------------------- 一些常用视图的区分 dba_tables dba_all_tables user_tables user_all_tables all_tables

Oracle查询语句基本命令一

oracle查询语句大全--基本命令大全一 1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.wendangku.net/doc/c017056459.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) V ALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) V ALUES (2, \'2\'); end;"; 7.查询用户下的表的信息select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum show user 3、查看系统拥有哪些用户SQL> select * from all_users; 4、新建用户并授权 SQL> create user a identified by a;(默认建在SYSTEM表空间下) SQL> grant connect,resource to a; 5、连接到新用户SQL> conn a/a

Oracle安装与配置、SQLPlus(一)

1.1、O racle简介 Oracle是一个生产中间件和数据库的较大的生产商,Oracle原本的含义:“神喻”,指的是神说的话。中国在商朝的时代,把一些刻在龟壳上的文字当成是上天的指示,所以在中国将Oracle也翻译成“甲骨文”。 Oracle公司的发展实际还是依靠IBM公司。 Oracle的创始人:Larry Ellison,创办了Oracle公司。 他一生的最大目标,“财富榜超过比尔·盖茨” Bruce Scott现在已经离开了Oracle公司,开发出了一套新的数据库-------PointBase 1.2、O racle安装 现在使用的Oracle是10g的版本,Oracle中的版本主要分为以下几个: ●Oracle 8 ●Oracle 8i i表示Internet,表示此时Oracle公司正式开始进军互联网 ●Oracle 9i Oracle9i与8i相比是非常相似的 ●Oracle 10g g表示网格技术 例如,以baidu搜索为准,现在想使用一款软件,但是此软件在离自己非常近的地方就存在了下载地址,但是与自己非常远的地方也同样存在一个下载地址,那么有没有可能现在通过搜索引擎没有搜索到离自己近的下载,而使用了更远的下载,那么这样一来肯定会造成

资源的浪费。 所以新的网络概念就是将网络划分成一个个网格,通过网格表示一个区域 选择Oracle 10g下的install目录中的setup.exe就可以执行Oracle的安装指令了如果不能安装有可能是防火墙造成的,此时可以将防火墙暂时禁用 安装步骤

此时将Oracle安装在D盘之中

选择企业版进行安装

如何查看oracle用户具有的权限和角色

如何查看oracle用户具有的权限和角色 上次有同学问我,如何查看一个oracle用户具有的权限和角色,我一时没答上来,回头好好研究了一下,记录一下,备查: 1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限): select * from dba_sys_privs; select * from user_sys_privs; 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限 sql>select * from role_sys_privs; 4.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 5.查看所有角色: select * from dba_roles; 6.查看用户或角色所拥有的角色: select * from dba_role_privs; select * from user_role_privs; 7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限) select * from V$PWFILE_USERS 比如我要查看用户wzsb的拥有的权限: SQL> select * from dba_sys_privs where grantee='WZSB';

GRANTEE PRIVILEGE ADMIN_OPTION ------------------------------ ---------------------------------------- ------------ WZSB CREATE TRIGGER NO WZSB UNLIMITED TABLESPACE NO 比如我要查看用户wzsb的拥有的角色: SQL> select * from dba_role_privs where grantee='WZSB'; GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE ------------------------------ ------------------------------ ------------ ------------ WZSB DBA NO YES 查看一个用户所有的权限及角色 select privilege from dba_sys_privs where grantee='WZSB' union select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='WZSB' );

相关文档
相关文档 最新文档