扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
show parameter parameter_name;用于查询相关参数设置。
为新安等地区用户提供了全套网页设计制作服务,及新安网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、新安网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
alter system set parameter_name=xxxx scope=spfile;该语句执行完后需要重启数据库才生效。(应对那些必须重启数据库的参数使用)
alter system set parameter_name=xxxx scope=both;该语句执行完后立即生效。(应对那些可以在线修改的,且需要保存的参数)
alter system set parameter_name=xxxx ;该语句执行完后立即生效。(应对那些可以在线修改的,且不需要保存的参数,下次重启后会被改为原有值。当然,也可以自己手工改回去)
oracle网络设置主要包括三个文件,sqlnet.ora\ lisnter.ora\ tnsnames.ora
1、通过netmgr 可以配置 lisnter.ora 和 tnsnames.ora
2、lisnter.ora 为oracle服务器使用的监听器配置文件,监听器可以通过 lsnrctl 进行管理
3、tnsnames.ora 为客户端配置文件,为连接服务器的参数信息
4、sqlnet.ora 为服务端sql*net 网络配置文件,主要参数如下:
1.设置日志参数
#设置客户端和服务器端的log文件的目录
LOG_DIRECTORY_CLIENT
LOG_DIRECTORY_SERVER
#设置客户端和服务器端的log文件的名称
LOG_FILE_CLIENT
LOG_FILE_SERVER
2.设置默认的domain,会在连接中自动追加domain
NAMES.DEFAULT_DOMAIN
如设置NAMES.DEFAULT_DOMAIN=us.acme.com
使用conn scott/tiger@test连接数据库时会自动追加domain,变成conn scott/tiger@test.us.acme.com,而直接使用conn scott/tiger@test.us.acme.com连接数据库则不会追加
//可以通过 show parameter domain 查看, 一般将该参数注释掉;如果设置了该参数
//通过netmgr设置本地服务名时系统会在本地服务名后面自动追加该参数
//sql*plus 访问时如果该参数存在,则会在服务名追加该参数,然后利用追加后的服务名,在tns中查找
//造成 tnsping 可以 但是使用 sqlplus 不可以的现象
3.设置客户端的命名方法和优先级(最常用的参数),可选值有tnsnames,onames,hostname,ldap等
NAMES.DIRECTORY_PATH
例如:names.directory_path = (tnsnames,onames,hostname)
// 服务端的解析路径 1.tnsname; 2.oname; 3.hostname
4.设置允许连入数据库的客户端版本,可选值10,9,8,7
SQLNET_ALLOWED_LOGON_VERSIONS
5.设置使用何种验证方式,可选值
none(使用用户名/密码的方式连接数据库)
all(使用所有方式的验证,包括OS验证)
nts(OS验证方式,连入OS后可以不用密码连接数据库)
SQLNET.AUTHENTICATION_SERVICES
6.设置客户端和服务器是否使用加密,可选值
accepted(如果对方设置为requested或required,则使用加密服务)
rejected(不使用加密服务,即使对方设置为requested也不使用)
requested(如果对方使用加密服务,则使用加密服务)
required(使用加密服务,如果对方没有使用则无法连接)
SQLNET.ENCRYPTION_CLIENT
SQLNET.ENCRYPTION_SERVER
#设置使用的加密算法
SQLNET.ENCRYPTION_TYPES_CLIENT
SQLNET.ENCRYPTION_TYPES_SERVER
7.设置连入数据库后必须在多长时间内完成认证(如:输入用户名/密码),超过此时间没有完成的话,数据库会断开此连接,并将客户端的IP地址和ORA-12170: TNS:Connect timeout occurred错误信息记录到sqlnet.log,而且客户端会收到ORA-12547: TNS:lost contact或ORA-12637: Packet receive failed错误信息。这个设置主要是为了防止denial-of-service攻击
SQLNET.INBOUND_CONNECT_TIMEOUT
8.设置在指定的时间间隔内必须有数据接收/发送,为了防止长时间的等待
SQLNET.RECV_TIMEOUT
SQLNET.SEND_TIMEOUT
9.限制访问数据库的客户端IP:
#允许访问的IP
TCP.INVITED_NODES=(192.168.1.103)
#不允许访问的IP
TCP.EXCLUDED_NODES=(192.168.1.102)
#检测上述参数的设置
TCP.VALIDNODE_CHECKING=yes
当不允许访问的客户端连入时,会出现下列错误
sys/oracle@approd.test as sysdba
ERROR:
ORA-12537: TNS:connection closed
Warning: You are no longer connected to ORACLE.
10.对tnsping命令进行跟踪,文件名是tnsping.trc
#trace文件的目录,默认在$ORACLE_HOME/network/trace下
TNSPING.TRACE_DIRECTORY
#trace的等级:有off,user,admin,support4个可选值,默认是off的(不进行跟踪)
TNSPING.TRACE_LEVEL
11.设置trace参数
#设置客户端和服务器端的trace文件的目录
TRACE_DIRECTORY_CLIENT
TRACE_DIRECTORY_SERVER
#设置客户端和服务器端的trace文件的名称
TRACE_FILE_CLIENT
TRACE_FILE_SERVER
#设置客户端和服务器端的trace文件的最大大小,超过后trace信息会写入新的文件
TRACE_FILELEN_CLIENT
TRACE_FILELEN_SERVER
#设置客户端和服务器端的trace文件的最多个数,trace文件是循环写的
TRACE_FILENO_CLIENT
TRACE_FILENO_SERVER#trace的等级:有off,user,admin,support4个可选值,默认是off的(不进行跟踪)
TRACE_LEVEL_CLIENT
TRACE_LEVEL_SERVER
#是否在trace中写入每条trace信息的dd-mon-yyyy hh:mi:ss:mi时间戳
TRACE_TIMESTAMP_CLIENT
TRACE_TIMESTAMP_SERVER#trace是否只写入独立的文件:设为off后,每个新的客户端会话的trace信息都会覆盖已有信息;设为on后,每个新的客户端会话的trace信息都会写入单独的文件
TRACE_UNIQUE_CLIENT
12.强制使用dedicated方式连接数据库
#当设置为on时,会在连接描述中自动添加(SERVER=dedicated),如果已经设置了(SERVER=shared)也会被覆盖,默认为off
USE_DEDICATED_SERVER
idleconn sys/oracle@test1 as sysdba
Connected.
sys@TESTselect server from v$session where username='SYS';
SERVER
---------
SHARED
在sqlnet.ora中设置了USE_DEDICATED_SERVER=on
sys@TESTselect server from v$session where username='SYS';
SERVER
---------
DEDICATED
最近,对Linux大页的调整,所以重温了一些Linux内存及SGA等相关概念、参数和配置,这里进行一下记录,省的总Google.
limits.conf文件实际是Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,突破系统的默认限制,对系统访问资源有一定保护作用。 limits.conf 和sysctl.conf区别在於limits.conf是针对用户,而sysctl.conf是针对整个系统参数配置。
limits.conf是 pam_limits.so的 配置文件,然後/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目 录下选择一个对应的服务文件,然後根据服务文件的内容选择具体的PAM模块进行处理。
格式为:
-c 指定修改core文件的大小,1000指定了core文件大小。也可以对core文件的大小不做限制,如: ulimit -c unlimited
对於需要做许多套接字连接并使它们处於打开状态的应用程序而言,最好通过使用ulimit -n,或者通过设置nofile参数,为用户把文件描述符的数量设置得比默认值高一些
maxlogins - 此用户允许登录的最大数目
注意:要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:session required /lib/security/pam_limits.so
详细说明:
username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
type:有 soft,hard 和 -,
soft 指的是当前系统生效的设置值。
hard 表明系统中所能设定的最大值。
soft 的限制不能比har 限制高。
用 - 就表明同时设置了 soft 和 hard 的值。
resource:
示例,若机器上部署了ORACLE数据库,我们需要对oracle用户的资源做下调整,如下:
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
--查看当前系统配置文件ulimit的全局配置
ulimit -a
如果未进行具体设置的话,会使用默认配置,如下查看:
批注:当使用*号让全局用户生效的时候,生效的nproc的值大小是受文件/etc/security/limits.d/90-nproc.conf中nproc值大小制约的,而如果仅仅是针对某个用户,那麽就不受该文件nproc值大小的影响。
Linux系统 /etc/security/limits.conf 配置
参考自
i之前 oracle使用的初始化参数文件是pfile i开始引用了SPFILE 但保留了pfile
初始化参数文件在整个ORACLE系统之中起著关键的作用 启动的过程中 oracle根据初始化参数的设置分配SGA 启动后台进程 数据库打开后 还是依据初始化的参数设置运行数据库
I以后的oracle版本 初始化参数文件有spfileSID ORA spfile ORA init ORA oracle在启动过程中也是按照这个顺序依次查找初始化参数文件 若最终没有找到 则数据库启动失败 同时Alert_sid log报错
i之后的版本 默认启动都是使用spfile参数文件启动 当然也可以指定pfile参数文件启动ORACLE spfile参数文件的格式为spfileSID ORA 而pfile参数文件的格式为initSID ORA
startup pfile= /oradata/oracle/admin/TEST/pfile/init ora *****
另外 pfile和spfile两者可以相互创建 创建默认目录在$ORACLE_HOME/dbs/
CREATE SPFILE FROM PFILE;
CREATE PFILE FROM SPFILE;
通过spfile创建的的初始化参数格式为 initSID ORA
修改初始化参数有两种方式
一 在mond下修改初始化参数
修改pfile参数 可编辑的修改init ora
修改spfile参数 不可编辑参数文件 只能通过命令或者EM动态修改初始化参数
命令 Alter system set AAA=N scope=MEMORY|SPFILE|BOTH;
SCOPE参数有三个选项
MEMORY 修改只对运行的实例有效
SPFILE 修改SPFILE设置
BOTH 同时修改了SPFILE和此实例
注意 在修改静态参数时必须得指定SPFILE参数 否则会报错 亦即修改静态参数时SCOPE参数不允许为BOTH
二 在EM中修改初始化参数设置
以sys用户登录EM
在主界面上选择 管理 标签按钮
在管理页面下选择 数据库配置 下的 所有初始化参数 按钮 转入初始化参数设置页面
默认修改的的是SCOPE=MEMORY的设置 当把 在当前正在运行的实例模式下将更改应用与SPFile 复选框选中时 相当于SCOPE=BOTH的设置
在值那项文本框输入新的值之后 点击右上角的应用按钮 修改生效
修改属性为SCOPE=SPFILE
lishixinzhi/Article/program/Oracle/201311/16518
修改 /etc/sysctl.conf 文件之后,执行命令 # sysctl -p 立刻生效
1、kernel.shmmax
用于定义单个共享内存段的最大值
shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会
导致需要创建多个共享内存段,这样可能导致系统性能的下降。
2、kernel.shmall
控制共享内存页数。Linux 共享内存页大小为4KB, 共享内存段的大小都是共享内存页大小的整数倍。
例如:一个共享内存段的最大大小是16G,那么需要共享内存页数是 16GB/4KB=16777216KB/4KB=4194304 (页),也就是64Bit 系统下16GB 物理内存,设置 kernel.shmall = 4194304 才符合要求(几乎是原来设置2097152
的两倍)。这时可以将shmmax 参数调整到 16G 了,同时可以修改SGA_MAX_SIZE 和SGA_TARGET 为 12G(您想设置的SGA 最大大小,当然也可以是2G~14G 等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)。
3、kernel.shmmni
是共享内存段的最大数量(注意这个参数不是 shmmin,是shmmni, shmmin 表示内存段最小大小 ) 。shmmni 缺省值4096 ,一般肯定是够用了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流