Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1149090
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2013-08-19 10:19:23

参数文件
数据库参数文件有pfile和spfile,pfile为文本文件,可以直接修改pfile的内容,但是需要重启生效。spfile为二进制文件,在数据库启动时,可以动态修改一部分参数,减少停机时间。
默认参数文件放置在以下位置:
- Unix系统               ---> $ORACLE_HOME/dbs
- WindowsNT/2000系统     ---> %ORACLE_HOME%\database

数据库启动,可以指定pfile,但不能指定spfile,指定spfile时会报错  SP2-0714: invalid combination of STARTUP options
可以通过pfile创建spfile,也可以通过spfile创建pfile,但是创建时需要注意,如果有指定文件名的话,要用单引号引起来,否则会报错 ORA-02236

在spfile中设置UTL_FILE_DIR参数的方法,该参数不能动态修改,只能修改在spfile里等待下次重启生效。
ALTER SYSTEM SET UTL_FILE_DIR='directory1','directory2' scope=spfile;

spfile的设置,可以设置在memory里也可以设置在spfile里,或者both,由scope=来指定。
对于修改到spfile中的参数,虽然没有立即生效,但是可以查询V$SPPARAMETER视图来获得,例如:

SELECT A.SID, A.NAME, B.VALUE CURRENT_VALUE, A.VALUE SPFILE_VALUE
  FROM V$SPPARAMETER A, V$SYSTEM_PARAMETER2 B
 WHERE UPPER(A.NAME) = UPPER(B.NAME)
   AND A.ORDINAL = B.ORDINAL
   AND UPPER(A.VALUE) <> UPPER(B.VALUE);


监听文件LISTENER.ORA
一个主机上是可以配置多个监听,但是监听的端口号和监听名称要不同,一个监听可以监听多个实例,一个实例也可以有多个监听。当主机上拥有不同版本数据库时,可能会建立多个监听,可以每个版本建立1个监听,但推荐是所有监听都使用版本最高的建立,也就是只设置1个listener.ora文件。

lsnrctl中service显示 status UNKNOWN
UNKNOWN状态说明该实例是写在listener.ora文件的SID_LIST中,通过静态注册实现的,不同于动态注册,数据库的状态时未知的。对于普通的连接,不需要在listener.ora文件中写SID_LIST,ORACLE不推荐这样做的原因是会导致监听进程不必要的开销。SID_LIST部分,只用于实例例如PLSExtProc或者OEM工具使用。
 
SQLNET.ORA
该文件是ORACLE网络的一个概要参数文件,可以配置客户端或服务端的trace,命名方法优先级,指定进程连接,配置高级安全等。
在sqlnet.ora配置trace的例子

# Sample sqlnet.ora file - Clients and Server use this file
# -----------------------------------------------------------------------
#
# TRACE_LEVEL_CLIENT=16                # 客户端trace级别
# TRACE_DIRECTORY_CLIENT=/tmp          # 客户端trace文件目录
# TRACE_FILE_CLIENT=cli                # 文件名前缀
# TRACE_UNIQUE_CLIENT=TRUE             # 在文件名中增加进程号
# AUTOMATIC_IPC=OFF                    # 强制会话通过IPC地址,会导致性能问题,该参数已被移除,现在已不支持了。
# TRACE_LEVEL_SERVER=16                # 服务器trace级别
# TRACE_DIRECTORY_SERVER=/tmp          # 服务器trace文件目录
# TRACE_FILE_SERVER=srv                # 文件名前缀
#
改变了sqlnet.ora文件何时生效

如果是在客户端修改sqlnet.ora,对于新的向外连接立即生效,不需要重启任何服务。对于服务端,只有在服务进程启动时才读sqlnet.ora文件,或者监听服务重启或reload时,所以只有当新进入的连接才能看见变化。

对于监听服务,如果设置将会要影响监听效果(例如设置TCP.VALIDNODE_CHECKING),那么必须重启或reload监听。

对于数据库实例,由于有2种数据库服务模式(独占模式和共享模式),有不同的方法启动服务进程,结合以下2种情况:
1.如果数据库工作在独占模式(或客户端只有使用独占连接),新的连接就可以看到sqlnet.ora的变化,不需要重启任何服务。
2.如果数据库工作在共享模式(或客户端只使用共享连接),新的连接只有当服务重启后才能看到sqlnet.ora的变化。

TNSNAMES.ORA
该文件配置本地命名参数,将连接描述符映射为net service name。通常有DESCRIPTION,包含连接描述符;ADDRESS,包含协议地址信息;CONNECT_DATA,包含数据库服务标识信息。如果有多个连接描述符,可以使用DESCRIPTION_LIST,如果有多个地址,可以使用ADDRESS_LIST。

单实例的tnsnames.ora
TEST1 =
  (DESCRIPTION =
     (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.6.55)(PORT = 1521))
     (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = TEST1)(INSTANCE_NAME = TEST1))
   )

rac的tnsnames.ora
ORA10G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
    (LOAD_BALANCE = on)
    (FAIL_OVER=on)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora10g)
      (FAILOVER_MODE=
        (TYPE=select)
        (METHOD=basic)
        (RETRIES=20)
        (DELAY=5)
      )
    )
  )

异构数据库的tnsnames.ora
TG4MSQL =
  (DESCRIPTION =
     (ADDRESS =(PROTOCOL = tcp)(HOST = 192.168.6.55)(PORT = 1522))
     (CONNECT_DATA =(SID = tg4msql))
     (HS = OK)
  )

密码文件
密码文件用于远程用户的身份鉴别。(通过sqlnet和listener)。默认情况下使用SYS用户连接到数据库时,需要从密码文件中获得一个条目。如:
SQL> connect sys/manager@xpdb as sysdba
当设置了remote_login_passwordfile参数为EXCLUSIVE,可以使用密码文件来维护:
- SYS用户的密码
- 分配了SYSDBA或SYSOPER权限的用户和密码。

密码文件命名格式是PWD$SID.ora放在$ORACLE_HOME/dbs下。
当remote_login_passwordfile参数设置为SHARED,密码文件只维护SYS用户的密码,多个数据库可以共享ORACLE_HOME。
orapwd命令可以创建密码文件,直接输入orapwd回车可以看到命令说明。
连接AS SYSDBA时,报ORA-01031错误的一些情况:

1.检查密码文件是否在正确的位置,有正确的名称。
2.检查环境变量ORA_PWFILE设置的密码文件。

 

阅读(1099) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~