文档库 最新最全的文档下载
当前位置:文档库 › oracle日志记录

oracle日志记录

oracle日志记录
oracle日志记录

【例1】

SQL>set time on

SQL>create table hr.mydep1 as select * from hr.department;

SQL>delete from hr.mydep1 where department_id=10;

SQL>flashback table hr.mydep1 to timestamp

2 to timestamp(to_tate(‘2009-05-29 10:00:00’, ’yyyy-mm-dd hh24:mi:ss’));

【例2】

SQL>create table student (name Varchar2(10), score Number);

SQL>insert into student values(‘zs’, 68);

SQL>update student set score=98 where name=’zs’;

SQL>commit;

SQL>select versions_starttime,versions_operation,name,score

2 from student versions between timestamp minvalue and maxvalue;

【例3】

SQL>CONNECT sys /zzuli AS sysdba

SQL>select table_name, undo_sql from flashback_transaction_query where rownum<5;

【例1】控制文件备份为二进制文件

下面的语句可以将控制文件备份为一个二进制文件,即复制当前的控制文件:

alter database backup controlfile

to 'd:\backup_controlfile\control_09-05-25.bkp';

【例2】控制文件备份为脚本文件

alter database backup controlfile to trace;

【例3】对视图V$CONTROLFlLE_RECORD_SECTION的查询。

select type,record_size,records_total,records_used

from v$controlfile_record_section;

【例4】向数据库添加了一个新的重做日志组:

alter database add logfile

(‘e:\app\administrator\oradata\orcl\redo04.log’,

‘f:\oradata\log\redo04b.log’)

Size 10m;

【例5】创建新的日志组,并将新的日志组指定为第4组:

alter database add logfile group 4 (‘e:\app\administrator\oradata\orcl\redo004.log’,‘f:\oradata\log\redo004b.log') size 10m;

【例6】为第1组添加了一个新的成员日志文件:

alter database add logfile member 'f:\oradata\log\redo01b.log' to group 1;

【例7】为第2组添加一个新成员:

alter database add logfile member 'f:\oradata\log\redo02b.log' to

('d:\app\administrator\oradata\orcl\ redo02.log' );

【例8】删除4号日志组的第2个成员:

alter database drop logfile member 'e:\app\administrator\oradata\log\redo04.log';

【例9】删除4号重做日志组:

alter database drop logfile group 4;

【例10】清空2号日志组中的成员文件:

alter database clear logfile group 2;

【例11】清空未归档的2号日志组中的成员文件:

alter database clear unarchived logfile group 2;

【例12】通过查询V$DATABASE视图来获知数据库是否处于归档模式:

select log_mode from v$database;

【例13】查询所有归档目标信息

col destination format a30

select destination,binding,target,status

from v$archive_dest;

【例14】查询已经启动的ARCn进行的状态:

select * from v$archive_processes;

【例15】建立一个重做日志文件列表,井向其中添加一个重做日志文件

execute

dbms_logmnr.add_logfile(logfilename=>'e:\app\administrator\oradata\orcl\redo01a.l og',

options=>dbms_logmnr.new)

【例16】将重做日志文件REDO02A.LOG从日志文件列表中删除:

execute

dbms_logmnr.add_logfile(logfilename=>'e:\app\ administrator

\oradata\orcl\redo02a.log',

options=>dbms_logmnr.removefile)

【例17】执行DBMS_LOGMNR.START_LOGMNR过程,分析2009年1月1日到2009年5月31日的数据。

execute dbms_logmnr.start_logmnr(dictfilename=>'f:\oradata\log\sqltrace.ora', starttime=>to_date('01/01/2009 00:00:00','dd/mm/yyyy hh:mi:ss'),

endtime=>to_date('05/31/2009 23:59:59','dd/mm/yyyy hh:mi:ss'));

【例18】查看hr对employees表进行过的操作:

select sql_redo ,sql_undo from v$logmnr_contents

where Username =’hr’ and seg_name =’employees’;

【例19】察看最近一段时间对employees表进行过的操作:

select timestamp, username, session_info,sql_redo,sql_undo from

v$logmnr_contents

where seg_name =’employees’;

将事务设置为只读的程序

set transaction readonly;

将事务设置为读写的程序

set transaction read write;

为事务设置回滚段的程序

Set transaction use rollback segment system;

【例1】创建用户名为king01,口令为king01,默认表空间为users,临时表空间为temp的用户。

程序如下:

create user king01 identified by king01

default tablespace users

temporary tablespace temp;

【例2】创建用户名为king02,口令为king02,默认表空间为users,临时表空间为temp的用户,并且不允许该用户使用system表空间。

程序如下:

create user king02 identified by king02

default tablespace users

temporary tablespace temp

quota 0 on system;

【例3】创建用户名为king03,口令为king03,默认表空间为users,并且该用户使用users表空间不受限制。

程序如下:

create user king03 identified by king03

default tablespace users

quota unlimited on users;

【例4】将CREATE SESSION和CREATE TABLE权限授予king01。

程序如下:

grant create session, create table to king01;

【例5】将用户KING01在USERS表空间的限额改为500MB。

程序如下:

alter user king01

default tablespace users

quota 500M on users;

【例6】删除用户queen01,如果queen01拥有任何对象,也自动删除这些对象。程序如下:

drop user queen01 cascade;

【例7】通过查询数据表DBA_USERS来获取用户KING01的信息。

程序如下:

Select USERNAME, USER_ID,PASSWORD from DBA_USERS where username = 'KING01';

创建 VPD所涉及到的程序

Step 1 创建用户

--创建3个用户,并授予用户权限

create user smavris identified by smavris702;

grant connect, resource to smavris;

create user dgrant identified by dgrant507;

grant connect, resource to dgrant;

create user kmourgos identified by kmourgos622;

grant connect, resource to kmourgos;

Step 2 为用户授权并创建查找表

--将hr.emp_login_map表上的SELECT权限授予数据库中的每个人

grant select on hr.employees to public;

--创建查找表hr.emp_login_map

create table hr.emp_login_map (employee_id, login_acct)

as select employee_id, email from hr.employees;

--将hr.emp_login_map表上的SELECT权限授予数据库中的每个人

grant select on hr.emp_login_map to public;

Step 3 创建VPD用户账户并授予其权限

创建一个称为VPD的用户账户,并使该账户具有创建上下文和维护策略函数的权限。

create user vpd identified by vpd01;

grant connect, resource, create any context, create public synonym to vpd;

连接到VPD模式,创建称为HR_SECURITY的上下文,并且定义用于设置应用程序上下文的程序包和过程:

connect vpd/vpd01;

create context hr_security using vpd.emp_access;

create or replace package vpd.emp_access as

procedure set_security_parameters;

end;

程序包VPD.EMP_ACCESS中的过程是可以设置上下文变量的唯一过程。VPD.EMP

_ACCESS的程序包主体如下:

create or replace package body vpd.emp_access is

procedure set_security_parameters is

emp_id_num number;

emp_login varchar2(50);

begin

emp_login:= sys_context('USERENV','SESSION_USER');

dbms_session.set_context('HR_SECURITY','USERNAME',emp_login);

begin

--数据库用户名对应于HR.EMPLOYEES中的email地址

select employee_id into emp_id_num

from hr.emp_login_map where login_acct = emp_login;

dbms_session.set_context('HR_SECURITY','EMP_ID',emp_id_num);

exception

when no_data_found then --用户不在查找表时

dbms_session.set_context('HR_SECURITY','EMP_ID',0);

end;

end; -- procedure

end; -- package body

授予数据库中每个人程序包上的EXECUTE权限,并且为其创建一个同义词,从而在每次需要调用它时节省一些击键次数。

grant execute on vpd.emp_access to PUBLIC;

create public synonym emp_access for vpd.emp_access;

为了确保在每个用户登录时为其定义上下文,我们将以SYSTEM身份连接到数据库,并且创建一个登录触发器,用于在上下文中设置变量。创建登录触发器的程序如下。

connect system/zzuli as sysdba;

create or replace trigger vpd.set_security_parameters

after logon on database

begin

vpd.emp_access.set_security_parameters;

end;

--以smavris/smavris702身份进行登录

connect smavris/smavris702;

--查看上下文内容

select * from session_context;

Step 4 生成谓词

connect vpd/vpd01;

--创建包

create or replace package vpd.get_predicates as

function emp_select_restrict (owner varchar2, object_name varchar2) return varchar2;

end get_predicates;

--创建包体

create or replace package body vpd.get_predicates is

function emp_select_restrict(owner varchar2, object_name varchar2) return varchar2 is

ret_predicate varchar2(1000); -- part of WHERE clause

begin

--只允许查看员工自己的信息或者是被该员工直接管理的其他员工的信息

ret_predicate := 'EMPLOYEE_ID = ' ||

sys_context('HR_SECURITY','EMP_ID') ||

' OR MANAGER_ID = ' ||

sys_context('HR_SECURITY','EMP_ID');

return ret_predicate;

end emp_select_restrict;

end; -- package body

最后使用DBMS_RLS.ADD_POLICY过程将策略函数附加到表。

exec DBMS_RLS.ADD_POLICY( -

object_schema => 'HR', -

object_name => 'EMPLOYEES', -

policy_name => 'EMP_SELECT_RESTRICT', -

function_schema => 'VPD', -

policy_function => 'get_predicates.emp_select_restrict', -

statement_types => 'SELECT');

使用KMOURGOS账号登录,尝试检索HR.EMPLOYEES的所有行。

connect kmourgos/kmourgos622;

select employee_id, first_name, last_name, email, job_id, salary, manager_id

from hr.employees;

使用DGRANT账号登录,尝试检索HR.EMPLOYEES的所有行。

connect dgrant/dgrant507;

select employee_id, first_name, last_name, email, job_id, salary, manager_id

from hr.employees;

使用SMAVRIS账号登录,尝试检索HR.EMPLOYEES的所有行。

connect smavris/smavris702;

select employee_id, first_name, last_name, email, job_id, salary, manager_id from hr.employees;

【例8】以king01身份登录、创建ZGGZB表并加密JJ列、向表中插入2行信息。程序如下:

CONNECT king01/ king01;

CREATE TABLE ZGGZB

(

zgbh varchar2(10) not null,

zgxm varchar2(20) not null,

jj number(6,2) encrypt

);

【例9】以SYS身份登录,并查询ZGGZB中的行。

程序如下:

Connect sys/zzuli as sysdba

Select * from king01.zggzb;

oracle常用命令及格式

oracle常用命令及格式 一:关于日志管理的 1.切换日志:sql> alter system switch logfile; 2.切换checkpoints:sql> alter system checkpoint; 3.增加日志组:sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size1m; 4.增加日志成员 sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5.改变日志文件名字或路径 sql> alter database rename file 'c:/oracle/oradata/oradb/re do01.log' sql> to 'c:/oracle/oradata/redo01.log'; (此处注意,那个文件路径的输入格式) 6.删除日志文件组:sql> alter database drop logfile group 3;

7.删除日志文件成员 sql> alter database drop logfile member 'c:/oracle/oradata/ redo01.log'; 8.清除日志文件内容 sql> alter database clear [unarchived] logfile 'c:/oracle/l og2a.rdo'; 二、关于表空间管理的 1.创建表空间 sql> create tablespace tablespace_name datafile 'c:\oracle\ oradata\file1.dbf' size100m, sql> 'c:\oracle\oradata\file2.dbf' size100mminimum extent 5 50k [logging/nologging] sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0) sql> [online/offline] [permanent/temporary] [extent_managem ent_clause]

Oracle 常见函数(一)——数值函数

Oracle常见数值函数 ----***特别说明***: x 可以是纯的数值,也可以是数值型表达式/* ABS(x)返回x绝对值 eg. */ selectabs(100),abs(-100) from dual; /* sign(x)判断x的正负,正数返回1,负数返回-1,0返回0; eg. */ selectsign(100),sign(-100),sign(0) from dual;

/* round(x[,n])对x进行四舍五入,保留n位小数,其中n采用其整数部分; 没有n时默认四舍五入到整数位,n为负数时,四舍五入保留小数点左边n位(补零), eg. */ selectround(5555.6666, 2.1), round(5555.6666, -2.6), round(5555.6666) from dual; /* trunc(x)对x进行直接截取,保留n位小数,其中n采用其整数部分; 没有n时默认截取到整数位,n为负数时,截取保留小数点左边n位(补零), eg. */ selecttrunc(5555.66666,2.1), trunc(5555.66666,-2.6), trunc(5555.033333) from dual; /* ceil(x)对x进行向上取整,返回不小于x的最小整数(可以是整数x本身)。

eg. */ selectceil(3.1), ceil(2.8+1.3), ceil(0) from dual; /* floor(x)对x进行向下取整,返回不大于x的最大整数(可以是整数x本身)。eg. */ selectfloor(3.1), floor(2.8+1.3), floor(0) from dual; /* mod(x,y)求x除以y的余数,x,y为数字型表达式。 eg. */ selectmod(23,8),mod(24,8) from dual;

oracle中常用函数大全

oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;

配置和自动启动Oracle的数据库和监听

配置和自动启动Oracle的数据库和监听(lsnrctl) 1.设置主机名称 [root@myc ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=myc 2.设置主机名称与IP地址的对应 [root@myc ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.2.16 myc 3.修改:/u01/app/oracle/network/admin/listener.ora [oracle@myc admin]$ cat listener.ora # listener.ora Network Configuration File: /u01/app/oracle/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myc)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /u01/app 4.修改:/u01/app/oracle/network/admin/tnsnames.ora [oracle@myc admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /u01/app/oracle/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myc) ) ) 5.lsnrctl 的常用方法

ORACLE 内置函数大全

SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C -- - 赵 A 3.CONCAT 连接两个字符串; SQL> select concat('010-','')||'转23' 高乾竞电话from dual; 高乾竞电话 ---------------- 010-转23 4.INITCAP 返回字符串并将字符串的第一个字母变为大写; SQL> select initcap('smith') upp from dual; UPP ----- Smith 5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置,默认为1 SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst; NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL

oracle12.2.0.3 监听白名单配置

oracle12.2.0.3 监听白名单配置 出于提高数据安全性等目地,有时需要对 oracle的进行访问限制,允许某些IP连接数据库或拒绝某些IP访问数据库。当然使用防火墙(iptables)也能达到限制的目地,但是从监听端口变更限制仍可生效、只针对oracle自己不和其他端口的限制相混杂和不需要root账号这几方面来说,通过配置sqlnet.ora文件来进行访问限制可能是一种更好的选择。 1.配置sqlnet.ora文件 进入$ORACLE_HOME/network/admin(一般对应的真实路径形如/u01/app/oracle19c/pr oduct/19.2.0/db_1/network/admin)查看是否存在sqlnet.ora文件及是否已配置tcp.val idnode_checking、tcp.invited_nodes、tcp.excluded_nodes项。如果文件存在且已有这几项,则在此基础上修改这几项;如果文件存在但这几项不存在,则在最后追加;如果文件不存在则直接新建。 oracle默认是没有的,我们以没有为例新建该文件,并写入以下内容: tcp.validnode_checking=yes tcp.invited_nodes=(192.168.220.128,127.0.0.1) tcp.excluded_nodes=(192.168.220.1) tcp.validnode_checking:此项是启用IP合法检查,此项是必须配置的,如果不启用其它两项配置了也无效。 tcp.invited_nodes:此项是允许连接数据库的IP地址,多个地址用逗号(半角)隔开,如果启用此项,一定要配上本地地址不然监听无法启动。 tcp.excluded_nodes:此项是不允许连接数据库的IP地址,多个地址用逗号(半角)隔开,如果与tcp.invited_nodes有相同IP,则还是允许该IP访问数据库。 tcp.invited_nodes和tcp.excluded_nodes其实可以只配置一项,当只配tcp.invited_no des时就是白名单,在此项列表中的所有IP允许访问数据库,所有不在此项列表中的所有I P拒绝访问数据库。当只配置tcp.excluded_nodes时,在此项列表中的所有IP拒绝访问数据库,所有不在此项列表中的所有IP允许访问数据库。 2.重新加载使配置生效 如果之前不存在sqlnet.ora则需要重启监听,如果之前存在sqlnet.ora则只需要重新加载配置即可。 重启和reload的区别,应该是监听完全停上和不完全停止的区别,使用stop/start 当前所有已连接的会话会强制断开,reload不会断开已有会话。 重启监听(业务会中断,在不影响业务情况下重启): lsnrctl stop

Oracle SQLPlus 常用命令及解释

Oracle SQLPlus 常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

Oracle常用函数及使用案例(珍藏版)

Oracle常用函数及使用案例(珍藏版) 一:sql函数: lower(char):将字符串转化为小写的格式。 upper(char):将字符串转化为大写的格式。 length(char):返回字符串的长度。 substr(char,m,n):取字符串的字串。 案例1.将所有员工的名字按小写的方式显示 select lower(ename),sal from emp; 案例2.将所有员工的名字按大写的方式显示。 select upper(ename),sal from emp; 案例3.显示正好为五个字符的的员工的姓名。 select * from emp where length(ename)=5; 案例4.显示所有员工姓名的前三个字符。 select substr(ename,1,3) from emp;//从名字的第一个字符开始取,向后取三个字符。 案例5.以首字母为大写的方式显示所有员工的姓名。 (1)首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) from emp; 案例6.以首字母为小写的方式显示所有员工的姓名。(需要有较高的灵活度,细心分析和清晰思路) (1)首字母小写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母大写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp; 案例7.函数(替换):replace(char1,search_string,replace_string); 显示所有员工的姓名,用“我要替换A”替代所有“A”。 select replace(ename,'A','我是老鼠')from emp; 案例8.以首字母为小写的方式显示所有员工的姓名。 select replace(ename,substr(ename,1,1),lower(substr(ename,1,1)))from emp; 案例9.以首字母为大写的方式显示所有员工的姓名。 Select replace(ename,substr(ename,2,length(ename)-1),lower(substr(ename,2,length(ename) -1)))from emp; 二:数学函数:(在财务中用的比较多) ronud(sal)用于四舍五默认取整; ronud(sal,1)用于四舍五留一位小数。 trunc(sal)取整,忽略小数。截去小数部分。 trunc(sal,1)截取;小数点留一位,之后的右边的省去。 trunc(sal,-1)截取;只留整数,个位数取零。 floor(sal)向下最接近取整;比如1.1值为1.

oracle11g常用命令.

第一章:日志管理 1. forcing log switches sql> alter system switch logfile; 2. forcing checkpoints sql> alter system checkpoint; 3. adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo' size 1m; 4. adding online redo log members sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5. changes the name of the online redo logfile sql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log' sql> to 'c:/oracle/oradata/redo01.log'; 6. drop online redo log groups sql> alter database drop logfile group 3; 7. drop online redo log members

sql> alter database drop logfile member 'c:/oracle/oradata/redo01.log'; 8.clearing online redo log files sql> alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo'; https://www.wendangku.net/doc/0f5467656.html,ing logminer analyzing redo logfiles a. in the init.ora specify utl_file_dir = ' ' b. sql> execute dbms_logmnr_d.build('oradb.ora','c:\oracle\oradb\log'; c. sql> execute dbms_logmnr_add_logfile('c:\oracle\oradata\oradb\redo01.log', sql> dbms_logmnr.new; d. sql> execute dbms_logmnr.add_logfile('c:\oracle\oradata\oradb\redo02.log', sql> dbms_logmnr.addfile; e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>'c:\oracle\oradb\log\oradb.ora '; f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters sql> v$logmnr_logs; g. sql> execute dbms_logmnr.end_logmnr; 第二章:表空间管理 1. create tablespaces sql> create tablespace tablespace_name datafile 'c:\oracle\oradata\file1.dbf' size 100m,

如何配制listener.ora

listener.ora 是oracle服务器端的网络配置文件,oracle 根据它来配置监听服务。listener.ora可配置多个监听器,每个监听器的文件组成是: SID_LIST_ORCLLISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = d:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = testDB) (ORACLE_HOME = d:\oracle\product\10.2.0\db_1) (SID_NAME = testDB) ) ) ORCLLISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 20100908-2130)(PORT = 1521)) ) 即由2部分组成: XXXLiSTENER=(DESCRIPTION=xxx):指定一个监听器所对应的服务器地址和端口号

SID_LIST_XXXLISTENER=((SID_LIST =xxx):指定XXXLISTENER所服务的数据库。即XXXLISTENER 将对请求这些数据库(SID)的连接提供监听接待服务。 listener.ora可配置多个监听和多个监听对应数据库(SID). ORCLLISTENER所监听的数据库列表 SID_LIST_ORCLLISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = d:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = testDB) (ORACLE_HOME = d:\oracle\product\10.2.0\db_1) (SID_NAME = testDB) ) ) LISTENER所监听的数据库 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = Oracle8)

Oracle函数大全

附录Ⅱ Oracle11g SQL函数 函数名 返回 类型 说明 字符串函数 ASCII(s) 数值 返回s首位字母的ASCII码 CHR(i) 字符 返回数值i的ASCII字符 CONCAT(s1,s2) 字符 将s2连接到字符串s1的后面 INITCAP(s) 字符 将每个单词首位字母大写其它字母小写 INSTR(s1,s2[,i[,j]]) 数值 返回s2在s1中第i位开始第j次出现的位置 INSTRB(s1,s2[,i[,j]]) 数值 与INSTR(s)函数相同,但按字节计算 LENGTH(s) 数值 返回s的长度。 LENGTHb(s) 数值 与LENGTH(s)相同,但按字节计算。 lower(s) 字符 返回s的小写字符 LPAD(s1,i[,s2]) 字符 在s1的左侧用s2字符串补足到总长度i LTRIM(s1,s2) 字符 循环去掉在s2中存在的s1左边字符 RPAD(s1,i[,s2]) 字符 在s1的右侧用s2字符串补足到总长度i RTRIM(s1,s2) 字符 循环去掉在s2中存在的s1右边字符 REPLACE(s1,s2[,s3]) 字符 用s3替换出现在s1中的s2 REVERSE(s) 字符 返回s倒排的字符串 SUBSTR(s,i[,j]) 字符 从s的第i位开始截得长度j的子字符串 SUBSTRB(s,i[,j]) 字符 与SUBSTR相同,但i,j按字节计算。 SOUNDEX(s) 返回与s发音相似的词 TRANSLATE(s1,s2,s3) 字符 将s1中与s2相同的字符以s3代替 TRIM(s) 字符 删除s的首部和尾部空格 UPPER(s) 字符 返回s的大写 正则表达式函数 REGEXP_LIKE() 布尔 功能与LIKE的功能相似 REGEXP_INSTR() 数值 功能与INSTR的功能相似 REGEXP_SUBSTR() 字符 功能与SUBSTR的功能相似 REGEXP_REPLACE() 字符 功能与REPLACE的功能相似 数字函数 ABS(i) 数值 返回i的绝对值 ACOS(i) 数值 反余玄函数,返回-1到1之间的数 ASIN(i) 数值 反正玄函数,返回-1到1之间的数 ATAN(i) 数值 反正切函数,返回i的反正切值

oracle set命令大全

oracle set命令详解 SET命令参数详解 我好如容易录入的,希望对大家有帮助,如果有错误也请指正.有更好的也请分享. SQL*PLUS维护系统变量,也称SET变量,利用它可为SQL*PLUS交互建立一个特殊的环境,如:设 置NUMBER数据的显示宽度;设置每页的行数;设置列的宽度等。可用SET命令改变这些系统变 量,也可用SHOW命令列出它们. 使用set命令的语法如下: SET 系统变量值 其中系统变量及其可选值如下: ARRAY[SIZE] {20(默认值)|n} AUTO[COMMIT] {OFF(默认值)|ON|IMM[EDIATE]} BLO[CKTERMINATOR] {.(默认值)|C} CMDS[EP] {;|C|OFF(默认值)|ON} COM[PATIBILITY] {V5|V6|V7|NATIVE(默认值)} CON[CAT] {.(默认值)|C|OFF|ON(默认值)} COPYC[OMMIT] {0(默认值)|n} CRT crt DEF[INE] {&|C|OFF|ON(默认值)} ECHO {OFF|ON} EMBEDDED {OFF(默认值)|ON} ESC[APE] { (默认值)|C|OFF(默认值)|ON} FEED[BACK] {6(默认值)|n|OFF|ON} FLU[SH] {OFF|ON(默认值)} HEA[DING] {OFF|ON(默认值)} HEADS[EP] {|(默认值)|C|OFF|ON(默认值)} LIN[ESIZE] {80(默认值)|n} LONG {80(默认值)|n} LONGC[HUNKSIZE] {80(默认值)|n} MAXD[ATA] n NEWP[AGE] {1(默认值)|n} NULL text NUMF[ORMAT] 格式 NUM[WIDTH] {10(默认值)|n}

oracle监听配置详细步骤

一、Oracle 监听 客户端请求通过web页面发给中间件weblogic 中间件再发给orale数据库图示如下: Oracle 为了和外界联系必须开启监听,来接受外部的请求。 开启oracle监听有2种方法 方法一:修改配置文件 方法二:通过图形化的工具改 监听配置文件所在的位置: cd $ORACLE_HOME Cd network/admin下 监听配置文件的位置为:/oracle/app/oracle/product/10.2.0/db_1/network/admin目录下有listener.ora文件,这个文件可以通过配置来生成或者新建vi listener.ora 1 方法一:图形化的工具生产监听文件 前提:用图形化工具时必须是oracle用户界面,也就是orale用户登录,如果是root用户登录的话,有个shell环境问题。 步骤一:以oracle用户登录,输入netca命令或者输入netmgr命令,如下图所示: 步骤二:出现图形界面,一直下一步就行,但这个命令只能配置监听,不能配置传输功能。所以我们在这里就不使用netca命令了。

下面输入netmgr命令 步骤一:输入netmgr命令 步骤二:回车之后,界面如下: 把local目录展开界面如下 步骤三:点击左上角绿色的添加‘监听’步骤四:添加要监听的主机(或ip地址)

步骤五:添加要监听的数据库 步骤六:设置好后关闭,保存。 步骤七:cd $ORACLE_HOME/network/admin下有了listener.ora文件了,如下: 步骤八:启动监听输入命令:lsnrctl start,如下图: 2 方法二直接编辑监听文档 Listener.ora文档也可以自己编辑生成,在$ORACLE_HOME/network/admin下编辑步骤一:Vi listener.ora, 文档添加以下内容: #listener.ora Network Configuration File: /oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. (SID_DESC = (GLOBAL_DBNAME = TEST) (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1) (SID_NAME = TEST) ) ) LISTENER = (DESCRIPTION =

oracle函数列表

PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数; 组函数 本文将讨论如何利用单行函数以及使用规则。SQL中的单行函数 SQL和PL/SQL中自带很多类型的函数,有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数。这些函数均可用于SELECT,WHERE、ORDER BY等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。 SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')FROM empWhere UPPER(ename) Like 'AL%'ORDER BY SOUNDEX(ename) 单行函数也可以在其他语句中使用,如update的SET子句,INSERT的V ALUES子句,DELET的WHERE子句,认证考试特别注意在SELECT语句中使用这些函数,所以我们的注意力也集中在SELECT语句中。 NULL和单行函数 在如何理解NULL上开始是很困难的,就算是一个很有经验的人依然对此感到困惑。NULL值表示一个未知数据或者一个空值,算术操作符的任何一个操作数为NULL值,结果均为提个NULL值,这个规则也适合很多函数,只有CONCA T,DECODE,DUMP,NVL,REPLACE在调用了NULL参数时能够返回非NULL值。在这些中NVL函数时最重要的,因为他能直接处理NULL值,NVL有两个参数:NVL(x1,x2),x1和x2都式表达式,当x1为null时返回X2,否则返回x1。 下面我们看看emp数据表它包含了薪水、奖金两项,需要计算总的补偿 column name emp_id salary bonuskey type pk nulls/unique nn,u nnfk table datatype number number numberlength 11.2 11.2 不是简单的将薪水和奖金加起来就可以了,如果某一行是null值那么结果就将是null,比如下面的例子: update empset salary=(salary+bonus)*1.1 这个语句中,雇员的工资和奖金都将更新为一个新的值,但是如果没有奖金,即salary + null,那么就会得出错误的结论,这个时候就要使用nvl函数来排除null值的影响。 所以正确的语句是: update empset salary=(salary+nvl(bonus,0)*1.1 单行字符串函数 单行字符串函数用于操作字符串数据,他们大多数有一个或多个参数,其中绝大多数返回字符串 ASCII()

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服务器端与客户端配置

近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server)。本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路,愿对广大网友与读者有一些帮助。 一、监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。 二、本地服务名(Tnsname) Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。 本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。 三、Oracle网络连接配置方法 配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle 服务端或客户端的配置)。在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle 网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如: $ netmgr Windows下启动Net Manager图形窗口如下图示:

oracle数据库之常用的函数练习

/*此文章可以作为sql脚本直接运行,某些函数限于oracle数据库!前面建表和数据插入可以不看,直接看后面红色部分的代码,前面的表只是提供一些数据供大家练习,不用自己再去建表了,真正的内容在后面*/ --人员表 create table person( personID number , pname varchar2(20) constraint NN_pname not null, psex char(2) , pbirth date , constraint PK_personID primary key (personID) , constraint CK_psex check (psex='男' or psex='女') ); --增加数据 create sequence seq_personID ; insert into person values (seq_personID.Nextval,'david','男',to_date('1990-09-10','yyyy-mm- dd')); insert into person values (seq_personID.Nextval,'ggyy','男',to_date('1991-10-10','yyyy-mm-dd')); insert into person values (seq_personID.Nextval,'朱 刀','男',to_date('1970-10-10','yy-mm-dd'));

insert into person values (seq_personID.Nextval,'泥 巴','女',to_date('1991-10-10','yy-mm-dd')); insert into person values (seq_personID.Nextval,'憨 坨','女',to_date('1991-10-10','yy-mm-dd')); insert into person values (seq_personID.Nextval,'李静 芳','女',to_date('1990-09-10','yyyy-mm-dd')); insert into person (personID,pname,psex) values (seq_personID.Nextval,'胖子','男'); insert into person (personID,pname,psex) values (seq_personID.Nextval,'小成成','男'); insert into person (personID,pname,psex) values (seq_personID.Nextval,'乐姐','女'); insert into person (personID,pname,psex) values (seq_personID.Nextval,'靓崽波','男'); --登录账号表 create table loginzh( userID number , personID number , zhanghao varchar2(20) , passwd varchar2(20) , logintime date , loginIP varchar2(15) , constraint PK_userID primary key (userID) , constraint FK_personID foreign key (personID) references person (personID) ); --为这个表加点数据 create sequence seq_userID ; insert into loginzh values (seq_userID.Nextval,1,'111111','123456',sysdate,'127.0.0.1'); --sysdate为系统当前时间

Oracle常用函数

数值函数

日期函数 SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual; SELECT TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日"') FROM dual; 其他函数

5.高级查询(多表联合查询) 例子: SELECT job 职务 , SUM(sal) 工资总和 FROM emp WHERE job != 'PRESIDENT' GROUP BY job HAVING SUM(sal)>4500 ORDER BY SUM(sal); 分析函数 以下三个分析函数用于计算一个行在一组有序行中的排位,序号从1开始 ROW_NUMBER返回连续的排位,不论值是否相等 RANK具有相等值的行排位相同,序数随后跳跃 DENSE_RANK 具有相等值的行排位相同,序号是连续的 例子: SELECT deptno, ename, sal, comm, RANK() OVER (PARTITION BY deptno ORDER BY sal DESC, comm) RANK FROM emp; SELECT ename, job, deptno, sal, ROW_NUMBER() OVER (ORDER BY sal DESC) AS SAL_RANK FROM SCOTT.EMP; SELECT d.dname, e.ename, e.sal, DENSE_RANK() OVER (PARTITION BY e.deptno ORDER BY e.sal DESC) AS DENRANK FROM emp e, dept d WHERE e.deptno = d.deptno;

相关文档