OMF
OMF (9i 新增)使用OMF建立表空间SQL> alter system set db_create_file_dest = 'c:' scope = memory;System alteredSQL> create tablespace xxm;Tablespace createdSQL> drop tablespace xxm;Tablespace dropped使用8i方式建立表空间SQL> create tablespace xxm 2 datafile 'c:xxm.dbf' size 2m;Tablespace createdSQL> drop tablespace xxm;Tablespace droppedSQL> create tablespace xxm 2 datafile 'c:xxm.dbf' reuse;Tablespace createdSQL> drop tablespace xxm 2 including contents and dataf
Rename datafile
----方法一: SQL> alter tablespace test offline; 表空间已更改。 ----或者datafile offline (drop ) SQL> alter database datafile 'd:ora92oradataicetest01.dbf' offline; 数据库已更改。 ----OS上move 数据文件。 SQL> alter database rename file 'd:ora92oradataicetest01.dbf' 2 to 'd:ora92oradatatest01.dbf'; 数据库已更改。 SQL> alter tablespace test online; 表空间已更改。 SQL> select table_name 2 from dba_tables 3 where tablespace_name = 'TEST'; TABLE_NAME
建用户后建表问题
我建立了表空间:userdata,然后建立userdata用户,赋予connect,create table权限,但是在create table 的时候,提示“ORA-01950表空间'GAMEDB'中无权限的问题”,后来发现再赋予userdata用户resource 的权限就可以在表空间上面建立表了。SQL> conn / as sysdba已连接。SQL> grant create table to userdata;授权成功。SQL> conn userdata/oracle已连接。SQL> create table abc(a int primary key,b int);create table abc(a int primary key,b int)*ERROR 位于第 1 行:ORA-01950: 表空间'USERDATA'中无权限SQL> conn / as
重建控制文件
还可以参考:http://www.eygle.com/archives/2005/03/oeoeoeoeiaeoeei.html[@more@]*practice 1假定,数据库控制文件已经全部丢失,但其他都没有损坏*//* 准备 */--关闭数据库$ sqlplus /nologSQL> connect system/system as sysdbaConnected.SQL> shutdown immediatecp -R /oracle/oradata/TEST /oracle/oradata/TEST_bakmv control01.ctl control04.ctlmv control02.ctl control05.ctlmv control03.ctl control06.ctl--重新数据库,出错ORA-00205: error in identifying controlfile, check alert log for more info--step 4备份现
重做日志文件的相关操作
1.ADD LOG GROUP:只增加一个日志成员的写法,用此种方法以后一定要再至少创建一个日志成员:ALTER DATABASE [database] ADD LOGFILE GROUP integer filespec SIZE size [REUSE] [,GROUP integer filespec SIZE size [REUSE] ...] ;同时增加多个日志成员的写法(注意多了个小括号):ALTER DATABASE [database] ADD LOGFILE GROUP integer ( filespec , filespec , filespec ...] ) SIZE size [REUSE];说明:--- filespec : 包括地址的全文件名--- 注意可以同时创建多个文件--- REUSE: 表示如果已经存在此文件就重用它!2.ADD LOG MEMBER:
dbms_logmnr
1:介绍:dbms_logmnr是oracle在oracle8i所提供的新package。它主要用于分析log file文件(包括online redo log file,archived log file),将log file中的信息转存到v$logmnr_contents中,从而获取对oracle数据库操作的历史信息。它不仅可以分析oracle8i的log file,也可以分析oracle8的log file。信息主要包括在你分析的时间限制内数据库数据作了些什么变更,执行了哪些语句。 2:使用方法 1)打开init.ora文件,加入utl_file_dir=d:oracle(注:改为自己的路径,是logminer使用文件的默认路径),然后应用新的设置打开oracle数据库。
Oracle常用命令
[@more@]第一章:日志管理 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
在使用alter system switch log的时候无时间限制的等待
我在使用alter system switch log;的时候,命令输入完了并回车,出现的是漫长的等待,可还是不能完成手动切换日志文件。折腾一番,原来是因为SQL> archive log list;数据库日志模式 存档模式自动存档 禁用存档终点 E:oracleora92RDBMS最早的概要日志序列 12下一个存档日志序列 14当前日志序列 14SQL>SQL> alter system archive log start;系统已更改。SQL>SQL> alter system set log_archive_start=true scope=spfile;系统已更改。SQL>[@more@]
关闭过程被中断
在alter system switch logfile;后,shutdown时不小心关闭了cmd窗口,导致了关闭过程被中断,再次以sys登录进去后变成:SQL> conn / as sysdba已连接到空闲例程。SQL> startup nomountORA-01081: cannot start already-running ORACLE - shut it down firstSQL> shutdown immediateORA-24324: 未初始化服务句柄ORA-24323: 不允许此值ORA-01090: 正在进行关闭 --- 不允许连接SQL> startupORA-01031: insufficient privilegesSQL> conn / as sysdba已连接到空闲例程。SQL> startup nomountORA-01081: cannot start alrea
有关Oracle分页查询语句
1. 最好还是利用分析函数row_number() over ( partition by col1 order by col2 )比如想取出100-150条记录,按照tname排序select tname.tabtype from ( select tname.tabtype,row_number() over ( order by tname ) rn from tab)where rn between 100 and 150;2. 直接使用rownum 虚列select tname.tabtype from ( select tname.tabtype,rownum rn from tab where rownum <= 150)where rn >= 100;格式:select * from (select rownumr,all_objects.* from all_objects where rownum <= :min) t where t.r >= :max;使
What are DDL and DML?
What are DDL and DML and their commands?DML statements are SQL statements that manipulate data. DML stands for Data Manipulation Language. The SQL statements that are in the DML class are INSERT, UPDATE and DELETE. Some people also lump the SELECT statement in the DML classification. Data Definition Languages (DDL) are used to define the database structure. Any CREATE, DROP and ALTER commands are examples of DDL SQL statements.[@more@]
Oracle审计功能
转载自:http://www.oraclefans.cn/forum/showblog.jsp?rootid=4675 作者:白鳝 审计是对选定的用户动作的监控和记录,通常用于:u 审查可疑的活动。例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。u 监视和收集关于指定数据库活动的数据。例如:DBA可收集哪些被修改、执行了多少次逻辑的I/O等统计数据。ORACLE支持三种审计类型:u 语句审计,对某种类型的SQL语句审计,不指定结构或对象。u 特权审计,对执行相应动作的系统特权的使用审计。u 对
oracle数据库同步
在两台oracle数据库之间测试成功,下面就总结一下吧:需求:现有两台oracle数据库服务器A和B(A,B可以是在同一内网,也可以是在互联网上的两台独立机器)。A和B里有都有testable表,结构一样,现需要当A库中的testable表变化时,B库里的testable也相应变化数据 我的解决方案:在A中建立到B库的链接,然后对要同步的表做一个同义synonym,最后建一个触发器,就可以完成了。当然,你所用的当前的用户要有相应的权限去执行这些操作。当从A向B同步数据时,应该在A上做所有的设置:1,为保证连接到另一台远程服务器的数据库,你需要建立一个DB Link
Security
[@more@]Security
修改表
alter table temp1 add(temp05 number(4),temp06 char2(10),temp07 varchar2(10));---------为表temp1增加3列alter talbe temp1 set unused(temp05,temp06,temp07);------为这3列加锁,其他用户不能访问。alter table temp1 drop column temp05;------删除一列alter table temp1 drop (temp06,temp07);----删除两列alter table temp1 drop unused(temp05,temp06,temp07);------解锁alter table temp1 ------修改表参数pctfree 30pctused 60storage(next 64kpctincrease 10maxextents unlimited);alter table temp1 move tablespace test--
创建表空间的参数
create table temp3(temp01 number(3) primary key,temp02 varchar2(10) not null)tablespace test ------使用test表空间pctfree 20-----------块的最小空闲比例20%pctused 40----------块的最低空闲标实比例40%initrans 10-----------起始并发事务数10maxtrans 255--------最大并发事务数255storage(initial 64k----起始区大小next 64k-------------后续区大小minextent 5----------区最小数目maxextent umlimited-区最大数目,这里为不受限制pctincrease 25-------后续区大小增加比例buffer_Pool keep----指定放表的缓存池)logging-----
AUTOTRACE介绍
SQL*Plus AUTOTRACE 可以用来替代 SQL Trace 使用,AUTOTRACE 的好处是您不必设置跟踪文件的格式,并且它将自动为 SQL 语句显示执行计划。然而,AUTOTRACE 分析和执行语句;而EXPLAIN PLAN仅分析语句。使用AUTOTRACE不会产生跟踪文件。[@more@]SQL> set autotrace on;SP2-0613: 无法验证 PLAN_TABLE 格式或实体SP2-0611: 启用EXPLAIN报告时出现错误SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色SP2-0611: 启用STATISTICS报告时出现错误该错误的的主要原因是由于当前用户下没有PLAN_TABLE这张表及相应的PLUSTRACE角色权限。解
Oracle关于时间/日期的操作
来源:TechTarget;http://searchdatabase.techtarget.com.cn/tips/62/2090062.shtml[@more@] 在oracle中有很多关于日期的函数,如: 1、add_months()用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_months) 例: SQL> select add_months(sysdate,12) "Next Year" from dual; Next Year ---------- 13-11月-04 SQL> select add_months(sysdate,112) "Last Year" from dual; Last Year ---------- 13-3月 -13 SQL> 2、current_da
在oracle中处理日期
TO_DATE格式 Day: dd number 12 dy abbreviated fri day spelled out friday ddspth spelled out, ordinal twelfth Month: mm number 03 mon abbreviated mar month spelled out march Year: yy two digits 98 yyyy four digits 1998 24小时格式下时间范围为: 0:00:00 - 23:59:59.... 12小时格式下时间范围为: 1:00:00 - 12:59:59 ....[@more@]1. 日期和字符转换函数用法(to_date,to_char) 2. select to_char( to_date(222,'J'),'Jsp') from dual 显示Two Hundred Twenty-Two 3. 求某天是星期几 select to_char(
Data Guard学习之物理standby创建步骤
不管物理standby还是逻辑standby,其初始创建都是要依赖primary数据库,因为这个准备工作中最重要的一部分,就是对primary数据库的配置。[@more@]一、准备工作 不管物理standby还是逻辑standby,其初始创建都是要依赖primary数据库,因为这个准备工作中最重要的一部分,就是对primary数据库的配置。 1、打开Forced Logging模式 将primary数据库置为FORCE LOGGING模式。通过下列语句: SQL> alter database force logging; 提示:关于FORCE LOGGING 想必大家知道有一些DDL语句可以通过指定NOLOGGING子句的方式避免写r