oracle中 tnsnames与sqlnet文件配置

oracle 增加ip访问限制

在sqlnet.ora中增加如下部分  oracle11g
-----------------------------

tcp.validnode_checking=yes
 
#允许访问的IP
tcp.invited_nodes=(ip1,ip2……)
 
#禁止访问的IP
tcp.excluded_nodes=(ip1,ip2……)
 
之后重新启动监听器即可

我oracle的安装目录 修改sqlnet.ora文件

  eg:
# sqlnet.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
#skate modify
tcp.validnode_checking=yes
tcp.invited_nodes=(192.168.0.103)
tcp.excluded_nodes=(192.168.0.10)

 


 oracle客户端连接监听器配置 

在tnsnames.ora中增加如下部分  oracle11g

  # tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)) oracle服务器ip地址与端口
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)--服务名称
    )
  )

使用ORACLE 正则表达式


比如:有个字段是存放电子邮件,其值为“[email protected]”,那么想查询该电子邮件的相关表信息,我们就可以使用正则表达式来完善查询条件。

元字符
含义
例子
\
转义符,匹配特殊字符
\n,匹配换行符
\\,匹配反斜线“ \”
\(,匹配左括号“ (”
\),匹配右括号“ )”
^
匹配字符串开头位置
^A,匹配以 A打头字符
$
匹配字符串结尾位置
A$,匹配以 A结尾字符
*
匹配前面字符 0次或是多次
ab*c,可以匹配 ac、abc、abbc等等
+
匹配前面字符 1次或是多次
ab+c,可以匹配 abc、abbc、abbbc等等
?
匹配前面字符 0次或1次
ab?c,可以匹配 ac、abc
{n}
匹配一个字符 n次,n为整数
ab{2}c,可以匹配 abbc
{n,m}
匹配一个字符至少 n次,最多m次
ab{2,3}c,可以匹配 abbc、abbbc
(pattern)
匹配指定模式的一个子表达式
ab(a|b),可以匹配 aba、abb
x|y
匹配 x或y
ab|cd,可以匹配 ab、cd
[:alphanum:]
匹配字母、数字
可以匹配字符 0-9、A-Z和a-z
[:alpha:]
匹配字母
可以匹配字符 A-Z和a-z
[:blank:]
匹配空格或 tab键
 
[:digit:]
匹配数字 0-9
 
[:graph:]
匹配非空字符
 
[:lower:]
匹配小写字母 a-z
 
[:upper:]
匹配大写字母 A-Z
 
[:xdigit:]
匹配十六进制数字 0-9、A-F和a-f
 
[:punct:]
匹配标点符号 .,”等等
 
[:space:]
匹配所有的空格符
 


查找员工编号为8位数字的员工信息
select empno,empname from emp where regexp_like(empno,'^[[:digibcdef:]]{8}$');
 
 

查找员工姓名为全英文,且以“M”结尾的员工信息
select empno,empname from emp where regexp_like(empname,'^[[:aphm:]]+M$');
 

把empname中所有非字母字符替换为“B”
update emp set empname=regexp_replace(empname, '[^[:alphabbh:]]', 'B')


oracle数据字典常用查询

怎么获取有哪些用户在使用数据库
select username from v$session; 
 

怎样查得数据库的SID ?
select name from v$database;
  

请问如何分辨某个用户是从哪台机器登陆ORACLE的?
SELECT machine , terminal FROM V$SESSION; 
 

怎么获取有哪些用户在使用数据库
select username from v$session; 
 

如何知道数据裤中某个表所在的tablespace?
select tablespace_name from user_tables where table_name='TEST'; 
 

怎么可以快速做一个和原表一样的备份表?
create table new_table as (select * from old_table); 
 

怎樣把“&”放入一條記錄中?
insert into a values (translate ('at{&}t','at{}','at')); 
 

何单独备份一个或多个表?
exp 用户/密码 tables=(表1,…,表2) 
 

如何单独备份一个或多个用户?
exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件 
 

Oracle常用系统文件有哪些? 通过以下视图显示这些文件信息:
v$database,v$datafile,v$logfile v$controlfile v$parameter; 
 

如何執行腳本在plsql命令中SQL文件?
SQL>@path\filename.sql; 
 

如何查找重复记录?
SELECT * FROM TABLE_NAME WHERE ROWID!=(SELECT MAX(ROWID) FROM
TABLE_NAME D WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
 
如何删除重复记录?
DELETE FROM TABLE_NAME WHERE ROWID!=(SELECT MAX(ROWID) FROM
TABLE_NAME D WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
 
如何知道索引在表空间中的存储情况?
select segment_name,count(*) from dba_extents where
segment_type='INDEX' and owner='&owner' group by segment_name;
 


如何监控当前数据库谁在运行什么SQL语句?
SELECT osuser, username, sql_text from v$session a,
v$sqltext b where a.sql_address =b.address order by address, piece;
 

表明对表选择索引的扫描方法. 例如:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE
THERE ARE FEWMALE BSEMPMS */ FROM BSEMPMS WHERE SEX='M';
 


表明对表选择索引升序的扫描方法. 例如:
SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='CCBZZP';
 
如何知道警告日志文件?
SIDALRT.LOG

如何知道基本结构?
STANDARD.SQL

猜你喜欢

转载自zhoualine.iteye.com/blog/1323592