oracle dba常用语句5

###### 分析日志文件 logmnr ##############

1) 在 init.ora 中 set utl_file_dir 参数

2) 重新启动 oracle

3) create 目录文件

desc dbms_logmnr_d;

dbms_logmnr_d.build;

4) 加入日志文件 add/remove log file

dhms_logmnr.add_logfile

dbms_logmnr.removefile

5) start logmnr

dbms_logmnr.start_logmnr

6) 分析出来的内容查询 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 */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值