oracle dba常用语句5

来源:互联网 发布:小企业手柄记账软件 编辑:程序博客网 时间:2024/06/06 10:43
###### 分析日志文件 logmnr ##############1) 在 init.ora 中 set utl_file_dir 参数2) 重新启动 oracle3) create 目录文件desc dbms_logmnr_d;dbms_logmnr_d.build;4) 加入日志文件 add/remove log filedhms_logmnr.add_logfiledbms_logmnr.removefile5) start logmnrdbms_logmnr.start_logmnr6) 分析出来的内容查询 v$logmnr_content --sqlredo/sqlundo实践:desc dbms_logmnr_d;/* 对数据表做一些操作,为恢复操作做准备 */update 表 set qty=10 where stor_id=6380;delete 表 where stor_id=7066;/***********************************/utl_file_dir 的路径execute dbms_logmnr_d.build('foxdict.ora','$ORACLE_HOME/oracle/admin/fox/cdump');execute dbms_logmnr.add_logfile('$ORACLE_HOME/oracle/ora_log_file6.log',dbms_logmnr.newfile);execute dbms_logmnr.start_logmnr(dictfilename=>'$ORACLE_HOME/oracle/admin/fox/cdump/foxdict.ora');######### tablespace ##############select * form v$tablespace;select * from v$datafile;/* 表空间和数据文件的对应关系 */select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts#=t2.ts#;alter tablespace users add datafile 'path' size 10M;select * from dba_rollback_segs;/* 限制用户在某表空间的使用限额 */alter user user_name quota 10m on tablespace_name;create tablespace xxx [datafile 'path_name/datafile_name'] [size xxx] [extent management local/dictionary] [default storage(xxx)];exmple: create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M;create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M extent management dictionary default storage(initial 100k next 100k pctincrease 10) offline;/*9i 以后, oracle 建议使用 local 管理,而不使用 dictionary 管理,因为 local 采用 bitmap 管理表空间 ,不会产生系统表空间的自愿争用 ;*/create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M extent management local uniform size 1m;create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M extent management local autoallocate;/* 在创建表空间时,设置表空间内的段空间管理模式,这里用的是自动管理 */create tablespace userdata datafile '$ORACLE_HOME/oradata/userdata01.dbf' size 100M extent management local uniform size 1m segment space management auto;alter tablespace userdata mininum extent 10;alter tablespace userdata default storage(initial 1m next 1m pctincrease 20);/*undo tablespace( 不能被用在字典管理模下 ) */create undo tablespace undo1 datafile '$ORACLE_HOME/oradata/undo101.dbf' size 40M extent management local;show parameter undo;/*temporary tablespace*/create temporary tablespace userdata tempfile '$ORACLE_HOME/oradata/undo101.dbf' size 10m extent management local;/* 设置数据库缺省的临时表空间 */alter database default temporary tablespace tablespace_name;/* 系统 / 临时 / 在线的 undo 表空间不能被 offline*/alter tablespace tablespace_name offline/online;alter tablespace tablespace_name read only;/* 重命名用户表空间 */alter tablespace tablespace_name rename datafile '$ORACLE_HOME/oradata/undo101.dbf' to '$ORACLE_HOME/oradata/undo102.dbf';/* 重命名系统表空间 , 但在重命名前必须将数据库 shutdown, 并重启到 mount 状态 */alter database rename file '$ORACLE_HOME/oradata/system01.dbf' to '$ORACLE_HOME/oradata/system02.dbf';drop tablespace userdata including contents and datafiles;---drop tablespce/*resize tablespace,autoextend datafile space*/alter database datafile '$ORACLE_HOME/oradata/undo102.dbf' autoextend on next 10m maxsize 500M;/*resize datafile*/alter database datafile '$ORACLE_HOME/oradata/undo102.dbf' resize 50m;/* 给表空间扩展空间 */alter tablespace userdata add datafile '$ORACLE_HOME/oradata/undo102.dbf' size 10m;/* 将表空间设置成 OMF 状态 */alter system set db_create_file_dest='$ORACLE_HOME/oradata';create tablespace userdata;---use OMF status to create tablespace;drop tablespace userdata;---user OMF status to drop tablespace;select * from dba_tablespace/v$tablespace/dba_data_files;/* 将表的某分区移动到另一个表空间 */alter table table_name move partition partition_name tablespace tablespace_name;###### ORACLE storage structure and relationships #########/* 手工分配表空间段的分区 (extend) 大小 */alter table kong.test12 allocate extent(size 1m datafile '$ORACLE_HOME/oradata/undo102.dbf');alter table kong.test12 deallocate unused; --- 释放表中没有用到的分区show parameter db;alter system set db_8k_cache_size=10m; --- 配置 8k 块的内存空间块参数select * from dba_extents/dba_segments/data_tablespace;select * from dba_free_space/dba_data_file/data_tablespace;/* 数据对象所占用的字节数 */select sum(bytes) from dba_extents where onwer='kong' and segment_name ='table_name';############ UNDO Data ################show parameter undo;alter tablespace users offline normal;alter tablespace users offline immediate;recover datafile '$ORACLE_HOME/oradata/undo102.dbf';alter tablespace users online ;select * from dba_rollback_segs;alter system set undo_tablespace=undotbs1;/* 忽略回滚段的错误提示 */alter system set undo_suppress_errors=true;/* 在自动管理模式下 , 不会真正建立 rbs1; 在手工管理模式则可以建立 , 且是私有回滚段 */create rollback segment rbs1 tablespace undotbs;desc dbms_flashback;/* 在提交了修改的数据后 ,9i 提供了旧数据的回闪操作 , 将修改前的数据只读给用户看 , 但这部分数据不会又恢复在表中 , 而是旧数据的一个映射 */execute dbms_flashback.enable_at_time('26-JAN- 04:12:17:00 pm ');execute dbms_flashback.disable;/* 回滚段的统计信息 */select end_time,begin_time,undoblks from v$undostat;/*undo 表空间的大小计算公式 : UndoSpace=[ UR * (UPS * DBS)] + (DBS * 24)UR :UNDO_RETENTION 保留的时间 ( 秒 )UPS : 每秒的回滚数据块DBS: 系统 EXTENT 和 FILE SIZE( 也就是 db_block_size)*/select * from dba_rollback_segs/v$rollname/v$rollstat/v$undostat/v$session/v$transaction;show parameter transactions;show parameter rollback;/* 在手工管理模式下 , 建立公共的回滚段 */create public rollback segment prbs1 tablespace undotbs;alter rollback segment rbs1 online;---- 在手工管理模式/* 在手工管理模式中 ,initSID.ora 中指定 undo_management=manual 、 rollback_segment=('rbs1','rbs2',...) 、transactions=100 、 transactions_per_rollback_segment=10然后 shutdown immediate ,startup pfile=..../???.ora */