Oracle基本管理

上传人:wuxin****2020 文档编号:139326354 上传时间:2022-08-22 格式:DOC 页数:32 大小:101KB
收藏 版权申诉 举报 下载
Oracle基本管理_第1页
第1页 / 共32页
Oracle基本管理_第2页
第2页 / 共32页
Oracle基本管理_第3页
第3页 / 共32页
资源描述:

《Oracle基本管理》由会员分享,可在线阅读,更多相关《Oracle基本管理(32页珍藏版)》请在装配图网上搜索。

1、Oracle基本管理1. ORACLE数据库启动与关闭1.1 打开和关闭数据库 (手工)1.1.1 sqlplus连接 #su - oracle#sqlplus /nolog1.1.2 打开数据库sql connect sys/oracle as sysdba; sql startup nomount|mount等待十几秒左右,当看到 oracle instances started, database mounted, database opened的时候,oracle数据库打开成功 备注:打开数据库startup可带三个参数,分别是 SQL startup nomount 仅启动insta

2、nces SQL startup mount 启动instances,连上(mount)数据库 SQL startup normal 启动instances,连上(mount)数据库(推荐)打开(open)数据库 startup缺省参数是normal 1.1.3 启动oracle listener #su - oracle#lsnrctl start如果出错检查环境变量是否设好,及lsnrctl文件的内容和执行属性。 1.1.4 关闭oracle listener #su - oracle#lsnrctl stop1.1.5 关闭数据库 sql connect sys/oracle as sy

3、sdba; sql shutdown 关闭数据库(推荐)等待几秒左右,当看到 database closed database dismounted oracle instances shut down的时候,oracle数据库关闭成功 备注:关闭数据库shutdown可带三个参数,分别是 SQL shutdown abort 非正常立刻关机。等于忽然停电 SQL shutdown immediate 做回滚*作,立刻关机。 SQL shutdown normal 正常关机 (推荐)shutdown缺省参数是normal 2. 数据库备份2.1 冷备份关闭数据库时作的备份称为冷备份。关闭数据库

4、,将所有和本实例有关的文件,包括datafile,controlfile,redolog,archived redolog,initora.ora等全部备份。恢复时只要将这些文件放回从前的目录,startup数据库即可。数据库处于归档非归档状态均可。2.2 用exp、imp命令做逻辑备份 EXP: 有三种主要的方式(完全、用户、表) 1、完全: exp system/manager buffer=64000 file=/backup/full.dmp full=y如果要执行完全导出,必须具有角色EXP_FULL_DATABASE 。 2、用户模式: exp system/manager buf

5、fer=64000 file=/backup/bill.dmp owner=bill这样用户bill的所有对象被输出到文件中。 3、表模式: exp system/manager buffer=64000 file=/backup/area.dmp owner=bill tables=area这样用户bill的表area就被导出到文件中。需要注意的参数是Inctype,这个参数可以取一下三个值: Complete(全备份):把数据库中所有数据对象导出到dump文件中,只有具有Exp_full_database的用户有使用这个参数的权限。 Incremental(增量备份):把数据库中所有上次备

6、份后修改的表备份出来。 Cumulative(累计备份):把数据库中所有全备份或者累计备份以后修改的表备份出来。IMP: 具有三种模式(完全、用户、表) 1、完全: imp system/manager buffer=64000 file=/backup/full.dmp full=y如果要执行完全导入,必须具有角色IMP_FULL_DATABASE 。 2、用户模式: imp system/manager buffer=64000 file=/backup/area.dmp fromuser=bill touser=billbak 文件中用户bill的所有对象被导入到用户billbakK中。

7、必须指定fromuser、touser参数。3、表模式: imp system/manager buffer=64000 file=/backup/area.dmp fromuser=bill touser=billbak tables=area文件中用户bill的表area就被导入到用户billbak中。 2.3 用tar命令做物理备份 1、#su - oracle 2、% tar cvf /dev/rmt0 . 把oracle 路径下所有文件备份到磁带机上 3、% tar xvf /dev/rmt0 把备份磁带上所有文件恢复进oracle 当前路径 4、% tar tvf /dev/rmt

8、/0 查看磁带上有些什么文件 2.4 备份控制文件控制文件是Oracle数据库中非常重要的文件。它记录着oracle数据库的物理结构信息,比如数据文件,日值文件的数量和位置等。在数据库启动过程中,需要读取控制文件。如果控制文件损坏或丢失,数据库就无法启动。因此,做好控制文件的备份十分重要。一般的数据库配置都会有多个控制文件。这些控制文件是完全相同的,分别存放在不同的位置(最好在不同的磁盘上),他们之间互为备份。数据库启动过程中,必须保证所有控制文件都是一致的,否则数据库不能启动。在oracle数据库的参数文件(initSid.ora)中指定控制文件的位置。如果部分控制文件损坏,可以在参数文件中

9、去掉相应的控制文件,即可启动数据库。每次数据库物理结构发生改变时,必须及时备份控制文件。 $sqlplus SQLconnect internal SQLalter database backup controlfile to /test.ctl ;也可以把控制文件备份成脚本,在必要的时候重建控制文件 SQLalter database backup controlfile to trace;2.5 联机全备份+日志备份2.5.1 设置ORACLE数据库有两种运行方式:一是归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复所有已提交的事物;二是不归档方式(NOAR

10、CHIVELOG),恢复数据库到最近的回收点。这两种方式将对备份方法产生较大的影响。1.改变不归档方式为为归档方式 2.关闭数据库,备份已有的数据 3.改变数据库的运行方式是对数据库的重要改动,所以要对数据库做备份,对可能出现的问题作出保护。 4.启动Instance ,Mount数据库但不打开数据库,来改变归档方式 #sqlplus sqlconnect internal sqlstartup mount sqlalter database archivelog;5.使能自动存档 在初始化文件init*.ora(一般放ORACLE根目录的下层目录dbs下)加参数: log_archive_s

11、tart=true6.指定存档的重做登录文件名和存放的位置 同样是在初始化文件init*.ora中加入下面的参数: log_archive_format=%S.arc log_archive_dest=/arch12/arch (arch12 是日志文件存放的目录)7.关闭数据库,重新启动数据库,归档方式转换完成。 8.可用archive log list查看状态,去除归档日志功能的命令为alter database noarchivelog。2.5.2 步骤联机全备份:数据库处于open状态,依次对各个表空间备份sqlplus / as sysdbaSQLalter tablespace s

12、ystem begin backup;复制此tablespace各个datafileSQLalter tablespace system end backup;注意:begin backup是对tablespace冻结写入,end backup是解除冻结,因此复制datafile的过程不宜过长备份controlfileSQLalter database backup controlfile to . ;日志备份:sqlplus / as sysdbaSQLalter system archive log stop;移去日志目录下的所有archived redologSQLalter syste

13、m archive log start;2.5.3 恢复数据库处于shutdown状态2.5.3.1 磁盘全部损坏,仅保存上次联机全备份和每天日志备份这是最坏情况解决硬件故障,配置系统软件及环境oracle用户,将全备份和日志备份转移至相应目录,根据initSid.ora中controlfile的配置,将备份控制文件复制到响应目录下sqlplus / as sysdbaSQLstartup mountSQLrecover database until cancel using backup controlfile;逐个确认待恢复的archived redolog,待最后一个完成后,键入canc

14、el,使恢复结束SQLalter database open resetlogs;注意:由于日志已经重置,所以应尽快做一次联机全备份2.5.3.2 丢失某数据文件只要将此文件从上次联机全备份中复制至其目录,并将自上次联机全备份以来所有日志备份移至归档目录sqlplus / as sysdbaSQLstartup mountSQLalter database recover datafile path/file ;或者简单些recover database;SQLalter database open;2.5.3.3 文件损坏或丢失,又无备份,这种情况只能将此文件脱机,将数据exp出来,重建表空

15、间,再imp进去sqlplus / as sysdbaSQLconnect internalSQLstartup mountSQLalter database datafile path/file offline;SQLalter database open;2.5.4 注意要点无论有多少把握,恢复前先做冷备份,此为第一原则。不这样做,便是无路可退,一旦失误,后果十分严重。1.rollback段损坏这是非常严重的问题,可在initora.ora中写入_corrupted_rollback_segments=(rxx),启动时避开损坏的rollback段,这只是权宜之计。如数据库处于archiv

16、elog,应从上一次全备份起利用备份的日志进行恢复;如数据库处于noarchivelog,应尽快将全部数据export出来,重建数据库,再import进去。所有*作之前,应做冷备份。2.数据库异常中止处理通过手工shutdown abort*作中止数据库,不会产生大的问题,通常直接startup无需使用介质恢复命令如果由于机器崩溃引起的中止,则情况严重得多,有可能要使用到上面提到的恢复方法,不过这种现象并不多见。一般需要显式使用介质恢复命令,如下:sqlplus / as sysdbaSQLstartup mount;SQLrecover database;SQLalter database

17、open;3. 数据库的扩充 3.1 增加一个表空间 3.1.1 创建表空间命令示例: SQLcreate tablespace application datafile /usr/oracle/dbs/application.dbf size 3M 针对具体情况增加回滚和临时表空间 命令示例: SQLcreate rollback segment rbs8 tablespace rbs storage(initial 1m next 4m)SQLCREATE TABLESPACE TEMP DATAFILE /usr/oracle/dbs/temp.dbf SIZE 32M REUSE AU

18、TOEXTEND ON NEXT 640K MINIMUM EXTENT 64K DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY;回滚和临时表空间用完后,可删除或使它offline SQLdrop tablespace rbs8; SQLdrop tablespaces billtemp; SQLalter tablespace rbs offline; SQLalter tablespace billtemp offline; 3.1.2 增加某

19、个表空间的大小 当一个表空间的大小不能满足工作需要时,应该扩充表空间。 举例: SQLalter tablespace system add datafile /usr/oracle/dbs/sys338.dbf size 3M; 3.2 增加oracle的用户,并给用户授权 3.2.1 增加oracle的用户, 并给用户授权 举例: SQLcreate user newuser identified by userpasswd default tablespace application temporary tablespace billtemp; SQLgrant connect to n

20、ewuser; SQLgrant resource to newuser; SQLgrant update on emp to newuser; 3.2.2 增加oracle的角色 oracle的缺省角色有connect、resource、dba。它是一组可以分配给其它role 或用户的权限总和,connect 有8个权限,resource 有5个权限,dba有77个权限。给一般连接用户赋connect,给一般编程人员赋connect加resource,只有数据库管理员才有dba的权限。 创建一个角色 SQLcreate role newrole identified by rolepassw

21、d; 给角色赋权限 SQLgrant select on all table to newrolle; SQLgrant connect to newrole with admin option; 3.2.3 中断用户同oracle的连接 当oracle数据库要关机或某个用户占有的大量的资源需要被释放时,dba 需中断用户同oracle的连接。 、SQLselect sid,serial#,username from v$session; 、SQLalter system kill session interger1,interger2 ; interger1,interger2分别对应于si

22、d和serial# 3.3 表、视图、索引、约束Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的*作可以基本归结为对数据对象的*作。3.3.1 表和视图Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大。视图是一个或多个表中数据的逻辑表达式。本文我们将讨论怎样创建和管理简单的表和视图。3.3.1.1 管理表3.3.1.1.1 建立表表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。用CREATE TABLE语句建立表,在建立表的同时,必须定义表名,

23、列,以及列的数据类型和大小。例如: CREATE TABLE products( PROD_ID NUMBER(4),PROD_NAME VAECHAR2(20),STOCK_QTY NUMBER(5,3);这样我们就建立了一个名为products的表, 关键词CREATE TABLE后紧跟的表名,然后定义了三列,同时规定了列的数据类型和大小。在创建表的同时你可以规定表的完整性约束,也可以规定列的完整性约束,在列上普通的约束是NOT NULL,关于约束的讨论我们在以后进行。在建立或更改表时,可以给表一个缺省值。缺省值是在增加行时,增加的数据行中某一项值为null时,oracle即认为该值为缺省

24、值。下列数据字典视图提供表和表的列的信息:. DBA_TABLES. DBA_ALL_TABLES. USER_TABLES. USER_ALL_TABLES. ALL_TABLES. ALL_ALL_TABLES. DBA_TAB_COLUMNS. USER_TAB_COLUMNS. ALL_TAB_COLUMNS3.3.1.1.2 表的命名规则表名标识一个表,所以应尽可能在表名中描述表,oracle中表名或列名最长可以达30个字符串。表名应该以字母开始,可以在表名中包含数字、下划线、#、$等。3.3.1.1.3 从其它表中建立表可以使用查询从基于一个或多个表中建立表,表的列的数据类型和大小

25、有查询结果决定。建立这种形式的表的查询可以选择其他表中所有的列或者只选择部分列。在CREATE TABLE语句中使用关键字AS,例如:SQLCREATE TABLE emp AS SELECT * FROM employeeTABLE CREATEDSQL CREATE TABLE Y AS SELECT * FROM X WHERE no=2需要注意的是如果查询涉及LONG数据类型,那么CREATE TABLE.AS SELECT.将不会工作。3.3.1.1.4 更改表定义在建立表后,有时候我们可能需要修改表,比如更改列的定义,更改缺省值,增加新列,删除列等等。ORACLE使用ALTER T

26、ABLE语句来更改表的定义3.3.1.1.4.1 增加列语法:ALTER TABLE schema. table_name ADD column_definition例:ALTER TABLE orders ADD order_date DATE;对于已经存在的数据行,新列的值将是NULL.3.3.1.1.4.2 更改列语法:ALTER TABLE schema. table_name MODIFY column_name new_attributes;例:ALTER TABLE orders MODITY (quantity number(10,3),status varchar2(15);

27、这个例子中我们修改了表orders,将STATUS列的长度增加到15,将QUANTITY列减小到10,3;修改列的规则如下:可以增加字符串数据类型的列的长度,数字数据类型列的精度。减少列的长度时,该列应该不包含任何值,所有数据行都为NULL改变数据类型时,该列的值必须是NULL.对于十进制数字,可以增加或减少但不能降低他的精度。3.3.1.1.4.3 删除数据列优化ORACLE数据库,唯一的方法是删除列,重新建立数据库。在ORACLE8i中有很多方法删除列,你可以删除未用数据列或者可以标示该列为未用数据列然后删除。删除数据列的语法是:ALTER TABLE schema. table_name

28、 DROP COLUM column_names | (column_names)CASCADE CONSTRAINS要注意的是在删除列时关于该列的索引和完整性约束也同时删除。注意关键字CASCADE CONSTRAINS,如果删除的列是多列约束的一部分,那么这个约束条件相对于其他列也同时删除。如果用户担心在大型数据库中删除列要花太多时间,可以先将他们标记为未用数据列,标记未用数据列的语法如下:ALTER TABLE schema. table_name SET UNUSED COLUM column_names | (column_names)CASCADE CONSTRAINS这个语句将一

29、个或多个数据列标记为未用数据列,但并不删除数据列中的数据,也不释放占用的磁盘空间。但是,未用数据列在视图和数据字典中并不显示,并且该数据列的名称将被删除,新的数据列可以使用这个名称。基于该数据列的索引、约束,统计等都将被删除。删除未用数据列的语句是:ALTER TABLE schema. table_name DROP UNUSED COLUM | COLUMN CONTINUE3.3.1.1.4.4 删除表和更改表名删除表非常简单,但它是一个不可逆转的行为。语法:DROP TABLE schema. table_name CASCADE CONSTRAINTS删除表后,表上的索引、触发器、权

30、限、完整性约束也同时删除。ORACLE不能删除视图,或其他程序单元,但oracle将标示他们无效。如果删除的表涉及引用主键或唯一关键字的完整性约束时,那么DROP TABLE语句就必须包含CASCADE CONSTRAINTS子串。更改表名RENAME命令用于给表和其他数据库对象改名。ORACLE系统自动将基于旧表的完整性约束、索引、权限转移到新表中。ORACLE同时使所有基于旧表的数据库对象,比如视图、程序、函数等,为不合法。语法:RENAME old_name TO new_name;例:SQL RENAME orders TO purchase_orders;3.3.1.1.4.5 截短

31、表TRUNCATE命令与DROP命令相似, 但他不是删除整个数据表,所以索引、完整性约束、触发器、权限等都不会被删除。缺省情况下将释放部分表和视图空间,如果用户不希望释放表空间,TRUNCATE语句中要包含REUSE STORAGE子串。TRUNCATE命令语法如下:TRUNCATE TABLE|CLUSTER schema. name DROP|REUSE STORAGE例:SQL TRUNCATE TABLE t1;3.3.1.2 管理视图视图是一个或多个表中的数据的简化描述,用户可以将视图看成一个存储查询(stored query)或一个虚拟表(virtual table).查询仅仅存储

32、在oracle数据字典中,实际的数据没有存放在任何其它地方,所以建立视图不用消耗其他的空间。视图也可以隐藏复杂查询,比如多表查询,但用户只能看见视图。视图可以有与他所基于表的列名不同的列名。用户可以建立限制其他用户访问的视图。3.3.1.2.1 建立视图CREATE VIEW命令创建视图,定义视图的查询可以建立在一个或多个表,或其他视图上。查询不能有FOR UPDATE子串,在早期的ORACLE8i版本中不支持ORDER BY子串,现在的版本中CREATE VIEW可以拥有ORDER BY子串。例:SQL CREATE VIEW TOP_EMP AS SELECT empno EMPLOYEE

33、_ID,ename EMPLOYEE_NAME,salary FROM empWHERE salary 2000用户可以在创建视图的同时更改列名,方法是在视图名后立即加上要命名的列名。重新定义视图需要包含OR REPLACE子串。SQL CREATE VIEW TOP_EMP(EMPLOYEE_ID,EMPLOYEE_NAME,SALARY) AS SELECT empno ,ename ,salary FROM empWHERE salary 2000如果在创建的视图包含错误在正常情况下,视图将不会被创建。但如果你需要创建一个带错误的视图必须在CREATE VIEW语句中带上FORCE选项。

34、如:CREATE FORCE VIEW ORDER_STATUS AS SELECT * FROM PURCHASE_ORDERSWHERE STATUS= APPPOVE ;SQL/warning :View create with compilation errors这样将创建了一个名为ORDER_STATUS的视图,但这样的视图的状态是不合法的,如果以后状态发生变化则可以重新编译,其状态也变成合法的。3.3.1.2.2 从视图中获得数据从视图中获得数据与从表中获得数据基本一样,用户可以在连接和子查询中使用视图,也可以使用SQL函数,以及所有SELECT语句的字串。3.3.1.2.3 插入

35、、更新、删除数据用户在一定的限制条件下可以通过视图更新、插入、删除数据。如果视图连接多个表,那么在一个时间里只能更新一个表。所有的能被更新的列可以在数据字典USER_UPDATETABLE_COLUMNS中查到。用户在CREATE VIEW中可以使用了WITH子串。WITH READ ONLY子串表示创建的视图是一个只读视图,不能进行更新、插入、删除*作。WITH CHECK OPTION表示可以进行插入和更新*作,但应该满足WHERE子串的条件。这个条件就是创建视图WHERE子句的条件,比如在上面的例子中用户创建了一个视图TOP_EMP,在这个视图中用户不能插入salary小于2000的数据

36、行。3.3.1.2.4 删除视图删除视图使用DROP VIEW命令。同时将视图定义从数据字典中删除,基于视图的权限也同时被删除,其他涉及到该视图的函数、视图、程序等都将被视为非法。例:DROP VIEW TOP_EMP;3.3.2 索引索引是一种可以提高查询性能的数据结构,在这一部分我们将讨论索引如何提高查询性能的。ORACLE提供了以下几种索引: B-Tree、哈希(hash)、位图(bitmap)等索引类型 基于原始表的索引 基于函数的索引 域(Domain)索引实际应用中主要是B-Tree索引和位图索引,所以我们将集中讨论这两种索引类型。3.3.2.1 B-Tree索引B-Tree索引是

37、最普通的索引,缺省条件下建立的索引就是这种类型的索引。B-Tree索引可以是唯一或非唯一的,可以是单一的(基于一列)或连接的(多列)。B-Tree索引在检索高基数数据列(高基数数据列是指该列有很多不同的值)时提供了最好的性能。对于取出较小的数据B-Tree索引比全表检索提供了更有效的方法。但当检查的范围超过表的10%时就不能提高取回数据的性能。正如名字所暗示的那样,B-Tree索引是基于二元树的,由枝干块(branch block)和树叶块(leaf block)组成,枝干块包含了索引列(关键字)和另一索引的地址。树叶块包含了关键字和给表中每个匹配行的ROWID。CREATE UNIQUE I

38、NDEX scott.ord_ord_no_idxON scott.ord(ord_no) REVERSEPCTFREE 30STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)TABLESPACE indx01;3.3.2.2 位图索引位图索引主要用于决策支持系统或静态数据,不支持行级锁定。位图索引可以是简单的(单列)也可以是连接的(多列),但在实践中绝大多数是简单的。位图索引最好用于低到中群集(cardinality)列,在这些列上多位图索引可以与AND或OR*作符结合使用。位图索引使用位图作为键值,对于表中的每一数据行位图

39、包含了TRUE(1)、FALSE(0)、或NULL值。位图索引的位图存放在B-Tree结构的页节点中。B-Tree结构使查找位图非常方便和快速。另外,位图以一种压缩格式存放,因此占用的磁盘空间比B-Tree索引要小得多。CREATE BITMAP INDEX scott.ord_region_id_idxON scott.ord(region_id)PCTFREE 30STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)TABLESPACE indx01;3.3.2.3 修改索引ALTER INDEX scott.ord_reg

40、ion_id_idxALLOCATE EXTENT (SIZE 200KDATAFILE DISK6/indx01.dbf );重建索引对于频繁更新的表,索引会变得层次很深,效率变低。这时需要重建索引。ALTER INDEX scott.ord_region_id_idx REBUILDTABLESPACE indx02;3.3.3 序列(Sequences)Oracle序列是一个连续的数字生成器。序列常用于人为的关键字,或给数据行排序否则数据行是无序的。像约束一样,序列只存在于数据字典中。序列号可以被设置为上升、下降,可以没有限制或重复使用直到一个限制值。3.3.3.1 创建序列创建序列使用

41、SET SEQUENCE语句。CREATE SEQUENCE schema sequence KEYWORDKEYWORD包括下面的值:KEYWORD 描述START WITH 定义序列生成的第一个数字,缺省为1INCREMENT BY 定义序列号是上升还是下降,对于一 个降序的序列INCREMENT BY为负 值MINVALUE 定义序列可以生成的最小值,这是降 序序列中的限制值。缺省情况下该值为 NOMINVALUE,NOMINVALUE,对于 升序为1,对于降序为-10E26.MAXVALUE 序列能生成的最大数字。这是升序序列 中的限制值,缺省的MAXVALUE为 NOMAXVALUE

42、,NOMAXVALUE,对 于升序为10E26,对于降序为-1。CYCLE 设置序列值在达到限制值以后可以重 复NOCYCLE 设置序列值在达到限制值以后不能重 复,这是缺省设置。当试图产 MAXVALUE+1的值时,将会产生一 个异常CACHE 定义序列值占据的内存块的大小, 缺省值为20NOCACHE 在每次序列号产生时强制数据字典更 新,保证在序列值之间没有间隔当创 建序列时,START WITH值必须等于 或大于MINVALUE。3.3.3.2 删除序列删除序列使用DROP SEQUENCE语句DROP SEQUENCE sequence_name3.4 网络管理3.4.1 Net8

43、server端配置3.4.1.1 listener.ora文件的样本:CONNECT_TIMEOUT_LISTENER = 0LOGGING_LISTENER = OFFLISTENER = (DESCRIPTION_LIST = (DESCRIPTION = # Local connections. (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = icache) ) ) (DESCRIPTION = # General TCP connections. (ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PO

44、RT = 1521) ) )# For secure connections over SSL, uncomment the following lines.# (DESCRIPTION = # Secure TCP connections.# (ADDRESS =# (PROTOCOL = TCPS)(HOST = dbsvr)(PORT = 2484)# )# ) (DESCRIPTION = # IIOP Connections. (PROTOCOL_STACK = (PRESENTATION = GIOP) (SESSION = RAW) ) (ADDRESS = (PROTOCOL

45、= TCP)(HOST = dbsvr)(PORT = 2481) )# For secure IIOP connections over SSL, uncomment the following lines.# (DESCRIPTION = # Secure IIOP Connections.# (PROTOCOL_STACK =# (PRESENTATION = GIOP)# (SESSION = RAW)# )# (ADDRESS = (PROTOCOL = TCPS)(HOST = dbsvr)(PORT = 2482)# ) )SID_LIST_LISTENER = (SID_LIS

46、T = (SID_DESC = (GLOBAL_DBNAME = s450 ) (ORACLE_HOME = /home1/ias/app/oracle/product/1.0.2) (SID_NAME = s450 ) ) (SID_DESC = (ORACLE_HOME = /home1/ias/app/oracle/product/1.0.2) (SID_NAME = iCache_extproc) (PROGRAM = extproc) ) )3.4.1.2 启动listener 在响应的端口上设置并启动listener 手工启动listener: 1. lsnrctl start 查

47、看状态 2. lsnrctl status3.4.2 Net 8 client端配置Net 8 client端常用的配置方法为tns方式使用图形配置工具进行配置 开始-程序-Oracle-Network Administration-Net8 Assistant. 1、选本地 - 概要文件 加入tnsnames 2、选本地 -服务命名 新建一个连接串,包括主机名、端口,协议 3、选文件-保存网络配置 直接配置$ORACLE_HOME/network/admin/tnsnames.ora1. 备份tnsnames.ora2. 按照示例对连接串做拷贝3. 改变连接串的名字,主机名,端口,协议,SI

48、D等参数4. 保存文件nttest = (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=localserver) (PORT=1521) ) (CONNECT_DATA=(sid=oradb) ) )3.4.3 sqlnet.ora3.4.4 网络连通性测试sqlplus tnsping ping ,netstat 1. sqlplus system/manager gis 注意:gis是刚才设置的新的连接串 2在客户端 Tnsping gis,并且检查tnsnames.ora中的配置是否与server端的$ORACLE_HOME/network/ad

49、min/listener.ora中的配置是否一致。1 Ping server IP地址,查看网络连通性3.4.5 常见NET8 错误故障排除是每个系统管理人员必要面对的工作。下面给出几种故障分析和排除方法。3.4.5.1 服务器端诊断任务1: 数据库系统是否启动确定数据库系统是否已启动,只要用SQL*PLUS登录即可:SQLPLUS system/manager如果收到下面信息,则数据库还不能用。 ORA-1017: invalid U/P ORA-1034: Oracle not available任务 2: 执行绕弯测试为了确认listener.ora, tnsnames.ora sqln

50、et.ora文件的存在,有效。要在服务器端UNIX在: $ORACLE_HOME/network/admin Windows NT在:ORACLE_HOMEnetworkadmin a. 这些文件是否在工作。b. TNS_ADMIN 变量有效性。使用 Net8 Assistant进行绕弯测试:1. 启动Net8 Assistant: 在 UNIX, 从 $ORACLE_HOME/bin. 目录来运行netasst 在NT, choose Start Programs Oracle - HOME_NAME Network Administration Net8 Assistant.2. 在导航器

51、扩展 Directory或 Local Service Naming.3. 选择net service name 或 database service.4. 选命令 Test Net Service.3.4.5.2 客户端诊断当服务器已经通过一般的SQL*PLUS测试和绕弯测试后,可以进行客户端的测试,步骤如下:1. 检查所安装的协议是否与服务器端一致;在UNIX, 可以运行$ORACLE_HOME/bin目录下的 adapters 来确认。结果显示:Installed Net8 Tranport Protocols are:IPCTCP/IPBEQueathSSLRAW.2. 检查所有 Ne

52、t8 软件在客户端已经安装。3. 确认客户端机器$ORACLE_HOME/network/admin目录下的tnsnames.ora 和 sqlnet.ora文件的内容:a. 当前的工作目录b. TNS_ADMIN 环境变量在NT中,如果 TNS_ADMIN 环境变量没有注册,就要进行注册。c. 用FTP, TELNET及PING 检查网络的连接情况。4. 用TNSPING 、TRCROUTE 实用程序或 Net8 Assistant进行测试 TNSPING:tnsping net_service_name count net service name: 在 tnsnames.ora 或名字服

53、务上得使用。如: NIS 或 DCE的 CDS. count (可选): 实验次数例1:使用spotdb 服务名进行测试:tnsping spotdb可能提示:TNS Ping Utility for SunOS:Copyright (c) Oracle Corporation 1998. All rights reserved.Attempting to contact(ADDRESS=(PROTOCOL=TCP)(HOST=spot)(PORT=1521)OK (50msec)例2:用TNSPING测试10次:tnsping stprd 10可能提示:TNS Ping Utility fo

54、r SunOS:Copyright (c) Oracle Corporation 1998. All rights reserved.Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=spot)(PORT=1521)OK (290 msec)OK (100 msec)OK (70 msec)OK (70 msec)OK (60 msec)OK (70 msec)OK (70 msec)OK (80 msec)OK (180 msecOK (340 msec)5. 如果连接失败,可以进行下面*作: 查找原因 用下面站点与Oracle联系:url

55、/url 与 Oracle Worldwide Support联系3.4.5.3 常见错误ORA-12154: TNS:could not resolve service name原因: 在 tnsnames.ora ,Net8不能定位到服务器上措施:1. 确定 tnsnames.ora 文件存在2. 确定不要有多个 tnsnames.ora 3.确认 tnsnames.ora 文件的服务名的正确性。4. 确认不要有多个 sqlnet.ora 5. 如果使用域名,确认 sqlnet.ora 包含NAMES.DEFAULT_DOMAIN 参数。如果该参数不存在,必须在连接字串中指定域名。如果没有

56、使用域名,而NAMES.DEFAULT_DOMAIN 参数存在,则删掉它或注释掉。6. 如果从对话框进行连接,要带号。7. 启动客户端的跟踪功能,再连接。ORA-12198: TNS:could not find path to destinationORA-12203:TNS:unable to connect to destination原因: 在客户端找不到目标数据库措施:1. 所输入的网络服务名是否正确2. 确认tnsnames.ora 文件中的ADDRESS参数是否正确3. 确认tnsnames.ora 文件是否在正确的目录上。4. 确认远程监听器是否启动:输入:lsnrctllsn

57、rctl status listener_namelistener_name 缺省 LISTENER.如果没有启动,则启动:lsnrctl start listener_name5.如果从对话框连接,不要忘记加号ORA-12203:TNS:unable to connect to destinationORA-12203 是一般的错误,可以检查$ORACLE_HOME/network/log目录的sqlnet.log 文件。原因: 所安装的协议不正确。可能与下面原因一样: ORA-12203 ORA-12538 ORA-00508措施: 检查安装的Oracle协议。在UNIX下,运行$ORACLE_HOME/bin 目录下的 adapters程序。应该输出:Installed Net8 Tranport Protocols are:IPCTCP/IPBEQueathSSLRAW.ORA-12203 原因: 不正确的服务名。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!