单实例10.2.0.3升级10.2.0.4 for AIX
1.正常shutdown数据库2.停止所有oracle进程:lsnrctl stop emctl stop dbconsole3.移除所有不使用的模块,防止升级中lib*文件无法复制 运行脚本/usr/sbin/slibclean4.使用图形界面运行./runInstaller,OUI界面升级软件,如中途遇到lib*文件无法复制,可再次运行步骤3中脚本,patch ID:68101895.使用root运行$ORACLE_HOME/root.sh,运行后完成软件升级6.升级数据库,可使用DBUA,也可手动升级,以下为手动升级方法: (1)升级前检查 SQL> STARTUP UPGRADE SQL> SPOOL upgrade_info.log
ORACLE开销计算
cpu开销与数据所在的列位置有关,每往后一列,开销增加20cpu_cost=column_position * 20(10gR2)io_cost≈(blocks/mbrc)*(mreadtim/sreadtim)索引范围扫描I/O开销io_cost≈(blevel+(leaf_blocks+clustering_factor)*selectivity)*(optimizer_index_cost_adj/100)通过工作量统计信息计算开销cost≈io_cost+cpu_cost/(cpuspeed*sreadtim*1000)通过非工作量统计信息计算开销cost≈io_cost+cpu_cost/(cpuspeednw*sreadtim*1000)其中sreadtim=ioseektim+db_block_size/iotfrspeed当mreadtim小于或等于sreadtim时,sreadtim和mreadtim将被重新计
统计信息的时效性
如果统计信息过旧会引起许多问题,而对于静态数据,反复收集统计信息又是没有意义的,所以注意统计信息的时效性非常重要。数据库引擎通过SQL语句修改每一个对象的行数统计,可以通过如下查询得到: SQL> select inserts,updates,deletes,truncated from dba_tab_modifications where table_name='EMP' and table_owner='SCOTT'; INSERTS UPDATES DELETES TRU---------- ---------- ---------- --- 2 0 38 NO 注意*_tab_modifications视图并不是实时刷新的,而是oracle自己周期性的从内存中将修改的信
index monitoring
今天在查看索引监控情况的时候发现v$object_usage视图其实是个比较特殊的v$视图,因为它只能查看本用户下索引的情况,即使是SYS用户也查不到其他用户的情况,该视图的创建语句如下:create or replace view v$object_usage(index_name, table_name, monitoring, used, start_monitoring, end_monitoring)asselect io.name, t.name,decode(bitand(i.flags, 65536), 0, 'NO', 'YES'),decode(bitand(ou.flags, 1), 0, 'NO', 'YES'),ou.start_monitoring,ou.end_monitoringfrom sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ouwher
Row Chaining and Migrating
行链接是指一个行的大小超过了一个块的可用大小,导致一个行存储在多个块中的情况行迁移是指一个行因为不断的被更新变大,导致原有的块存放不下该行,而将该行的数据整行迁移到另外 一个合适的块中,而原块中留下一个指针指向迁移后的块,行迁移后rowid不变。行迁移特别容易出现在表增加字段后。 查找行链接和行迁移1、运行脚本@$ORACLE_HOME/rdbms/admin/utlchain.sql该脚本其实只做一件事,创建chained_rows表:create table CHAINED_ROWS ( owner_name varchar2(30), table_name varchar2(30), cluster_name
flashback命令整理
Flashback query(undo)select * from table_name as of timestamp to_timestamp('2008-03-03 12:00:00','yyyy-mm-dd hh24:mi:ss');select * from table_name as of scn 123456;Flashback table(undo,恢复表到某时间点,阻塞写操作)--必须开启行移动alter table table_name enable row movement; flashback table table_name to timestamp(JUL-07-2008,02:33:00);flashback table table_name to scn 123456;flashback table table_name to timestamp '2008-03-03 12:05:00' enable triggers; --只恢复trigger或index状态,不
oracle管理常用命令整理(三)
索引创建索引--B-TREE索引create index id_idx on test(id);--位图索引create bitmap index gender_idx on test(gender);--反向索引create index reverse_idx on test(id) reverse;--创建全局索引(已散列为例,其他类似)create index id_idx on test(id)global partition by hash(id)(partition p1 tablespace ts1, partition p2 tablespace ts2, partition p3 tablespace ts3, partition p4 tablespace ts4);--创建本地索引create index id_idx on testt(id) localtablespace localindex_01;[@more@]监控索引--打开监控alter index id_
oracle管理常用命令整理(二)
表删除表列--删除列alter table test01 drop (a);--标记列为无用后删除(对大数据量的列)alter table test01 set unused(a,b);alter table test01 drop unused columns;alter table test01 drop unused columns checkpoint 1000; --减少undo的产生[@more@]重命名--重命名表alter table test01 rename to test02--重命名列alter table test01 rename column a to b;使用CTAS创建表create table test02as select * from test01parallel degree 4 --使用并行创建,提高创建速度nologging; --不
oracle管理常用命令整理(一)
表空间创建表空间create tablespace test datafile 'C:oracleproduct10.2.0oradataora10gtest01.dbf' size 100m--extent management local --空间管理(默认local)--autoallocate 100m --区段分配(默认auto)--uniform size 5m --同一区段分配(默认1M)--segment space management auto --段空间管理,只能用于本地管理表空间(默认auto)--blocksize 8k --块大小(默认为DB_BLOCK_SIZE的值)--查看表空间管理信息select initial_extent,next_extent,extent_management,allocation_type,segment_space_managementfrom dba_tablespacesw
Service_name,Instance_name,db_name,ORACLE_SID,连接标识符详解
一直对ORACLE中各种名字不是很清晰,这两天做了比较细致的研究,也算是小有成就吧,哈哈!Service_name:数据库逻辑上表现为一个服务,服务名可以任意取,并且一个数据库可以有 多个服务名,名字由参数Service_names决定,如果该参数为空,默认的服务名为全局数据库名,即db_name.db_domain。Instance_name:实例与数据库的对应关系是多对一,由参数instance_name指定,当系统的实例与数据库为一对一关系时,通常实例名即为数据库名。[@more@]db_name:db_name与db_domain组成全局数据库名,唯一地标识一个Oracle数据库,db_name在数据库创
Oracle的检查点
检查点作为数据库中极其重要的一环,概念必须清晰。 检查点共有3种,分别是完全检查点,增量检查点和部分检查点。 在执行完全完全检查点时,DBWn将数据库缓冲区中的所有灰数据写入数据文件。 增量检查点为每3秒启动一次,并将相应的RBA信息记录到控制文件中,减少频繁的完全检查点对性能的产生的影响,并可以减少实例恢复的时间。 部分检查点即只将数据库缓冲区中部分灰数据写入数据文件,如我们在执行ALTER TABLESPACE BEGIN BACKUP等针对单独表空间的操作时,就会触发部分检查点。 另外要注意的是日志切换会引发检查点,但是该检查
在不同数据库间传输表空间
exp "sys/oracle as sysdba" transport_tablespace=y tablespaces=test file='C:oracleproduct10.2.0oradatabackuptest01.dmp'该命令只导出表空间的元数据,要传输整个表空间,需要将表空间的数据文件和该dmup文件复制到客户机上,输入以下命令:imp "sys/oracle as sysdba" transport_tablespace=y tablespaces=test file='C:oracleproduct10.2.0oradatabackuptest01.dmp' datafiles='C:oracle2.0oradataora10gtest01.dbf'注意导入时需要指定数据文件的位置,在新库中需要建立用户,但不能有同名的表空间
Oracle进程(Expert Oracle)
先恭喜下自己的BLOG开通了,这也是我的第一个BLOG,开通它是为了让自己能更好的学习,如果能对别人有帮助那当然更好了。最近在学习Tom的Expert Oracle整理了一些笔记。Oracle实例3类主要进程:1. 服务器进程(server process)2. 后台进程(background process)3. 从属进程(slave process)在一些操作系统上,进程即为线程,如WINDOWS。在UNIX上,则为进程。服务器进程:代表客户完成工作的进程。[@more@]Oracle连接1. 专有服务器连接客户连接与服务器进程一对一的关系客户/服务器进程优点:可以远程执行,地址空间隔离(客户进程与服务