发布时间 : 星期二 文章Oracle数据库实验笔记更新完毕开始阅读
Oracle数据库实验
数据库移动数据文件 1建立数据库的文本参数文件 一致性停库 2 将所有的文件复制到目标位置
3 在文本参数文件中,修改新的控制文件的的位置 4 将二进制文件删除,留下文本文件 5 将数据库启动mount状态 6 将库中文件名重命名到目标位置
alter database rename file ' 旧文件' to ‘新文件’ 7 启动数据库库到OPen 状态;
移库
SQL> create pfile from spfile;
文件已创建。
SQL> shut immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。
Total System Global Area 104857600 bytes Fixed Size 1247516 bytes Variable Size 62916324 bytes Database Buffers 33554432 bytes Redo Buffers 7139328 bytes 数据库装载完毕。
SQL> select 'alter database rename file'||''''||name||''''||'to'||''''||replace(
name,'D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\','E:\\TEST\\')||''''||';' FROM (SELEC T NAME FROM V$DATAFILE);
'ALTERDATABASERENAMEFILE'||''''||NAME||''''||'TO'||''''||REPLACE(NAME,'D:\\ORACLE
--------------------------------------------------------------------------------
alter database rename file'D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\SYSTEM01.DBF'to
'E:\\TEST\\SYSTEM01.DBF';
alter database rename file'D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\UNDOTBS01.DBF't
o'E:\\TEST\\UNDOTBS01.DBF';
alter database rename file'D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\SYSAUX01.DBF'to
'E:\\TEST\\SYSAUX01.DBF';
alter database rename file'D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS01.DBF'to'
E:\\TEST\\USERS01.DBF';
'ALTERDATABASERENAMEFILE'||''''||NAME||''''||'TO'||''''||REPLACE(NAME,'D:\\ORACLE
--------------------------------------------------------------------------------
alter database rename file'D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\EXAMPLE01.DBF't
o'E:\\TEST\\EXAMPLE01.DBF';
SQL> alter database open;
数据库已更改。
SQL> select name from v$controlfile union select name from v$datafile union select member from v$logfile; NAME
-------------------------------------------------------------------------------- D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\EXAMPLE01.DBF D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO01.LOG D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO02.LOG D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\SYSAUX01.DBF D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\SYSTEM01.DBF D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\UNDOTBS01.DBF D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS01.DBF E:\\TEST\\CONTROL01.CTL E:\\TEST\\CONTROL02.CTL E:\\TEST\\CONTROL03.CTL
已选择11行。
SQL>
位图实验步骤 一.autoallocate 是自动分配的实验 1.create tablespace mytest 2.datafile 'E:\\test01.dbf' size 100M;
3.create table abc tablespace mytest as select * from scott.emp; 4.desc dba_extents
5.select file_id,extent_id,block_id,blocks from dba_extents where segment_name='ABC'; 6.alter system dump datafile 6 block 3
7.select c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' trace from v$process a,v$session b,v$parameter c,v$instance d
where a.addr=b.paddr and b.audsid=userenv('sessionid') and c.name= 'user_dump_dest'; 8.打开D:\\ORACLE\\PRODUCT\\10.2.0\\ADMIN\\ORCL\\UDUMP/orcl_ora_2516.trc文件 9. insert into abc select * from abc; 10.alter system dump datafile 6 block 3;
11.select file_id,extent_id,block_id,blocks from dba_extents where segment_name='ABC'; 12.再次打开D:\\ORACLE\\PRODUCT\\10.2.0\\ADMIN\\ORCL\\UDUMP/orcl_ora_2516.trc文件; 13.结果:End dump data blocks tsn: 7 file#: 6 minblk 3 maxblk 3 *** 2012-11-23 10:33:34.781
Start dump data blocks tsn: 7 file#: 6 minblk 3 maxblk 3。 二.uniform 就是区的大小都是一样的的实验 14.CREATE TABLESPACE \ 'E:\\mytbs01.dbf' SIZE 104857600
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL UNIFORM SEGMENT SPACE MANAGEMENT AUTO(uniform与AUTOALLOCATE 的管理区别,实验表明uniform的块的大小是一直不变的,而autoalllocate管理方式是随着增长的)
15.create table abcd tablespace myTBS as select * from scott.emp;
16.select file_id,extent_id,block_id,blocks from dba_extents where segment_name='ABCD'; 17. insert into abcd select * from abcd; 18.alter system dump datafile 7 block 3
19.select c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' trace from v$process a,v$session b,v$parameter c,v$instance d
where a.addr=b.paddr and b.audsid=userenv('sessionid') and c.name= 'user_dump_dest'; 20.结果RelFno: 7, BeginBlock: 9, Flag: 0, First: 43, Free: 63445
FFFFFFFFFF070000 0000000000000000 0000000000000000 0000000000000000 三:
空间回收(整理碎片):
1.delete from abcd where deptno=10;
2.alter table abcd enable ROW MOVEMENT; 3.alter table ABCD shrink space;
4.alter table abcd disable ROW MOVEMENT;
5.select file_id,extent_id,block_id,blocks from dba_extents where segment_name='ABCD';
实验结果: 已选择31行
数据库备份 热备要求数据库处于归档状态,在业务不是很繁忙时用热备
shut immediate startup mount
alter database archivelog; alter database open;启动归档模式 archive log list 热备:
alter tablespace users begin backup;
copy D:\\oracle\\product\\10.2.0\\oradata\\orcl \%users01.dbf e:\\test\%users01.dbf alter tablespace users end backup 实验
假设users表空间存在热备份 该空间有一个T2表(scott.emp) 在该表产生交易 update t2 set sal=sal+1; commit;
alter system switch logfile;
然后将USERS表空间的数据文件给它破坏掉 比如用一个txt文件覆盖掉
copy d:\\1.txt d:\%users01.bdf(用txt覆盖掉了users01.bdf) alter system checkpoint;
select file_name,online_status from dba_data_files; 产看当前数据库有哪些数据文件需要恢复 取回备份文件; recover datafile 4:
alter database datafile 4 online; 代码
Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp.
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata\\or cl e:\\test\%users01.dbf
D:\\oracle\\product\\10.2.0\\oradata\\orcl\\CONTROL01.CTL D:\\oracle\\product\\10.2.0\\oradata\\orcl\\CONTROL02.CTL