Log actively being archived by another process
在alert_sid.log文件上,看到经常有这样的错误(没有手动归档,一直都是自动归档):Mon Jun 02 16:34:22 2008ARC0: Evaluating archive log 1 thread 1 sequence 40ARC0: Unable to archive log 1 thread 1 sequence 40 Log actively being archived by another processMon Jun 02 16:34:25 2008ARC1: Completed archiving log 1 thread 1 sequence 40归档进程可能会有2个或者2个以上如果其中一个正在归档某个日志,而另一个进程来尝试归档该日志的话,则会出现这个提示这个提示很可能是正常的,不过,也许,你可以考虑在如何能提
数据库配置检查
1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name; 2、查看表空间物理文件的名称及大小 select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name; 3、查看回滚段名称及大小 select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
statspack分析
Load Profile~~~~~~~~~~Per Second Per Transaction --------------- ---------------Redo size: 22,007.09 2,921.10 --很重要的参数,表示你数据变更频率Logical reads: 22,890.62 3,038.38 Block changes: 95.88 12.73Physical reads: 5,413.37 718.54Physical writes: 5.67 0.75User calls: 750.85 99.66 Parses: 183.20 24.32 ----软解析每秒超过300次意味着你的"应用程序&q
EXP-00056: 遇到 ORACLE 错误 31600- -
下午在导出statspack表数据的时候,用EXP导出错。[@more@]连接到: Oracle9i Enterprise Edition Release 9.2.0.6.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.6.0 - Production已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将导出指定的用户.... 正在导出 pre-schema 过程对象和操作. 正在导出用户 SYSTEM 的外部函数库名称. 导出 PUBLIC 类型同义词. 导出私有类型同义词. 正在导出用户 SYSTEM 的对象类型定义EXP-00008: 遇到 ORACLE 错误 942ORA-00942: 表或视图不存在EXP
Oracle数据库9i在AIX环境下的性能调整
当进程申请的内存超过系统的物理内存总量时,会出现内存访问冲突的现象,为了处理这种情况,程序与数据将在内存和硬盘之间进行交换。[@more@]控制内存交换操作(Paging) 大量的内存交换操作会极大地影响系统的性能,尤其是在当数据库文件创建在文件系统上时(JFS and JFS2)。在这种情况下经常访问的数据,即在SGA中存在,也同样在文件的缓存中存在。这种相同的数据在内存中缓存两次的情况,会降低内存的使用效率,从而使内存频繁进行交换操作,造成系统的I/O瓶颈,降低整个系统的性能。调整AIX上的文件缓存在AIX上,可以通过vmtune命令中的M
关于分区表和分区索引(About Partitioned Tables and Indexes)
对于10gR2而言,基本上可以分成几类: Range(范围)分区 Hash(哈希)分区 List(列表)分区 以及组合分区:Range-Hash,Range-List。 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区依赖列不能是lob,long之类数据类型,每个表的分区或子分区数的总数不能超过1023个。 对于索引组织表,只能够支持普通分区方式,不支持组合分区,常规表的限制对于索引组织表同样有效,除此之外呢,还有一些其实的限制,比如要求索引组织表的分区依赖列必须是主键才可以
移动LOB类型的索引
如果表上存在有LOB数据类型的字段,而有时候我们需要将这些表和索引移动到别的表空间去,但是使用正常的alter index index_name rebuild tablespace_name的方法是行不通的,数据库会报错:ORA-02327: cannot create index on expression with datatype LOB。 在这种情况下要移动LOB索引,就必须要使用特定的方法来移动LOB索引。让我们举例来具体的看看:[@more@]先创建一个带有LOB字段的表test,默认的表空间是system:SQL> CREATE TABLE test 2 ( 3 NAME VARCHAR2(100 BYTE) NOT NULL, 4 OWNERNAM
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