Oracle数据库实验笔记 联系客服

发布时间 : 星期二 文章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