Oracle数据库实验笔记.docx
《Oracle数据库实验笔记.docx》由会员分享,可在线阅读,更多相关《Oracle数据库实验笔记.docx(54页珍藏版)》请在冰豆网上搜索。
![Oracle数据库实验笔记.docx](https://file1.bdocx.com/fileroot1/2022-12/7/7f205750-1fee-4bd3-9931-a31ba8606055/7f205750-1fee-4bd3-9931-a31ba86060551.gif)
Oracle数据库实验笔记
Oracle数据库实验
数据库移动数据文件
1建立数据库的文本参数文件一致性停库
2将所有的文件复制到目标位置
3在文本参数文件中,修改新的控制文件的的位置
4将二进制文件删除,留下文本文件
5将数据库启动mount状态
6将库中文件名重命名到目标位置
alterdatabaserenamefile'旧文件'to‘新文件’
7启动数据库库到OPen状态;
移库
SQL>createpfilefromspfile;
文件已创建。
SQL>shutimmediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL>startupmount
ORACLE例程已经启动。
TotalSystemGlobalArea104857600bytes
FixedSize1247516bytes
VariableSize62916324bytes
DatabaseBuffers33554432bytes
RedoBuffers7139328bytes
数据库装载完毕。
SQL>select'alterdatabaserenamefile'||''''||name||''''||'to'||''''||replace(
name,'D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\','E:
\TEST\')||''''||';'FROM(SELEC
TNAMEFROMV$DATAFILE);
'ALTERDATABASERENAMEFILE'||''''||NAME||''''||'TO'||''''||REPLACE(NAME,'D:
\ORACLE
--------------------------------------------------------------------------------
alterdatabaserenamefile'D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'to
'E:
\TEST\SYSTEM01.DBF';
alterdatabaserenamefile'D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF't
o'E:
\TEST\UNDOTBS01.DBF';
alterdatabaserenamefile'D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF'to
'E:
\TEST\SYSAUX01.DBF';
alterdatabaserenamefile'D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF'to'
E:
\TEST\USERS01.DBF';
'ALTERDATABASERENAMEFILE'||''''||NAME||''''||'TO'||''''||REPLACE(NAME,'D:
\ORACLE
--------------------------------------------------------------------------------
alterdatabaserenamefile'D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF't
o'E:
\TEST\EXAMPLE01.DBF';
SQL>alterdatabaseopen;
数据库已更改。
SQL>selectnamefromv$controlfileunionselectnamefromv$datafileunionselectmemberfromv$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.createtablespacemytest
2.datafile'E:
\test01.dbf'size100M;
3.createtableabctablespacemytestasselect*fromscott.emp;
4.descdba_extents
5.selectfile_id,extent_id,block_id,blocksfromdba_extentswheresegment_name='ABC';
6.altersystemdumpdatafile6block3
7.selectc.value||'/'||d.instance_name||'_ora_'||a.spid||'.trc'trace
fromv$processa,v$sessionb,v$parameterc,v$instanced
wherea.addr=b.paddrandb.audsid=userenv('sessionid')andc.name='user_dump_dest';
8.打开D:
\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP/orcl_ora_2516.trc文件
9.insertintoabcselect*fromabc;
10.altersystemdumpdatafile6block3;
11.selectfile_id,extent_id,block_id,blocksfromdba_extentswheresegment_name='ABC';
12.再次打开D:
\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP/orcl_ora_2516.trc文件;
13.结果:
Enddumpdatablockstsn:
7file#:
6minblk3maxblk3
***2012-11-2310:
33:
34.781
Startdumpdatablockstsn:
7file#:
6minblk3maxblk3。
二.uniform就是区的大小都是一样的的实验
14.CREATETABLESPACE"MYTBS"DATAFILE
'E:
\mytbs01.dbf'SIZE104857600
LOGGINGONLINEPERMANENTBLOCKSIZE8192
EXTENTMANAGEMENTLOCALUNIFORMSEGMENTSPACEMANAGEMENTAUTO(uniform与AUTOALLOCATE的管理区别,实验表明uniform的块的大小是一直不变的,而autoalllocate管理方式是随着增长的)
15.createtableabcdtablespacemyTBSasselect*fromscott.emp;
16.selectfile_id,extent_id,block_id,blocksfromdba_extentswheresegment_name='ABCD';
17.insertintoabcdselect*fromabcd;
18.altersystemdumpdatafile7block3
19.selectc.value||'/'||d.instance_name||'_ora_'||a.spid||'.trc'trace
fromv$processa,v$sessionb,v$parameterc,v$instanced
wherea.addr=b.paddrandb.audsid=userenv('sessionid')andc.name='user_dump_dest';
20.结果RelFno:
7,BeginBlock:
9,Flag:
0,First:
43,Free:
63445
FFFFFFFFFF070000000000000000000000000000000000000000000000000000
三:
空间回收(整理碎片):
1.deletefromabcdwheredeptno=10;
2.altertableabcdenableROWMOVEMENT;
3.altertableABCDshrinkspace;
4.altertableabcddisableROWMOVEMENT;
5.selectfile_id,extent_id,block_id,blocksfromdba_extentswheresegment_name='ABCD';
实验结果:
已选择31行
数据库备份
热备要求数据库处于归档状态,在业务不是很繁忙时用热备
shutimmediate
startupmount
alterdatabasearchivelog;
alterdatabaseopen;启动归档模式
archiveloglist
热备:
altertablespaceusersbeginbackup;
copyD:
\oracle\product\10.2.0\oradata\orcl\users01.dbfe:
\test\users01.dbf
altertablespaceusersendbackup
实验
假设users表空间存在热备份
该空间有一个T2表(scott.emp)
在该表产生交易
updatet2setsal=sal+1;
commit;
altersystemswitchlogfile;
然后将USERS表空间的数据文件给它破坏掉
比如用一个txt文件覆盖掉
copyd:
\1.txtd:
\users01.bdf(用txt覆盖掉了users01.bdf)
altersystemcheckpoint;
selectfile_name,online_statusfromdba_data_files;
产看当前数据库有哪些数据文件需要恢复
取回备份文件;
recoverdatafile4:
alterdatabasedatafile4online;
代码
MicrosoftWindowsXP[版本5.1.2600]
(C)版权所有1985-2001MicrosoftCorp.
C:
\DocumentsandSettings\Administrator>copyD:
\oracle\product\10.2.0\oradata\or
cle:
\test\users01.dbf
D:
\oracle\product\10.2.0\oradata\orcl\CONTROL01.CTL
D:
\oracle\product\10.2.0\oradata\orcl\CONTROL02.CTL
D:
\oracle\product\10.2.0\oradata\orcl\CONTROL03.CTL
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\TEMP01.DBF
D:
\oracle\product\10.2.0\oradata\orcl\UNDOTBS01.DBF
D:
\oracle\product\10.2.0\oradata\orcl\USERS01.DBF
已复制1个文件。
C:
\DocumentsandSettings\Administrator>copyD:
\oracle\product\10.2.0\oradata\orcl\users01.dbfe:
\test\users01.dbf
系统找不到指定的文件。
C:
\DocumentsandSettings\Administrator>copyD:
\oracle\product\10.2.0\oradata\or
cl\users01.dbfe:
\test\users01.dbf
改写e:
\test\users01.dbf吗?
(Yes/No/All):
y
已复制1个文件。
C:
\DocumentsandSettings\Administrator>copyD:
\oracle\product\10.2.0\oradata\or
cl\users01.dbfe:
\test\users01.dbf
改写e:
\test\users01.dbf吗?
(Yes/No/All):
y
已复制1个文件。
C:
\DocumentsandSettings\Administrator>copyD:
\oracle\product\10.2.0\oradataD:
\oracle\product\10.2.0\oradata\orcl\users01.dbf;
D:
\oracle\product\10.2.0\oradata\1.txt
另一个程序正在使用此文件,进程无法访问。
已复制0个文件。
C:
\DocumentsandSettings\Administrator>copyD:
\oracle\product\10.2.0\oradataD:
\oracle\product\10.2.0\oradata\orcl\users01.dbf;
D:
\oracle\product\10.2.0\oradata\1.txt
另一个程序正在使用此文件,进程无法访问。
已复制0个文件。
C:
\DocumentsandSettings\Administrator>copyD:
\oracle\product\10.2.0\oradata\1.txtD:
\oracle\product\10.2.0\oradata\orcl\users01.dbf;
已复制1个文件。
C:
\DocumentsandSettings\Administrator>
8888*************************************************************
MicrosoftWindowsXP[版本5.1.2600]
(C)版权所有1985-2001MicrosoftCorp.
C:
\DocumentsandSettings\Administrator>sqlplus/nolog
SQL*Plus:
Release10.2.0.1.0-Productionon星期五11月3010:
37:
432012
Copyright(c)1982,2005,Oracle.Allrightsreserved.
SQL>conn/assysdba
已连接。
SQL>shutimmediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL>startupmount
ORACLE例程已经启动。
TotalSystemGlobalArea289406976bytes
FixedSize1248576bytes
VariableSize100664000bytes
DatabaseBuffers180355072bytes
RedoBuffers7139328bytes
数据库装载完毕。
SQL>alterdatabasearchivelog
2archiveloglist
3altertablespaceusersbeginbackup
4altertablespaceusersbeginbackup;
archiveloglist
*
第2行出现错误:
ORA-00933:
SQL命令未正确结束
SQL>alterdatabasearchivelog;
数据库已更改。
SQL>alterv
2;
alterv
*
第1行出现错误:
ORA-00940:
无效的ALTER命令
SQL>alterdatabaseopen
2;
数据库已更改。
SQL>altertablespaceusersbeginbackup
2;
表空间已更改。
SQL>copyD:
\oracle\product\10.2.0\oradata\orcle:
\test\users01.dbf
用法:
COPYFROMTO{()}USING:
数据库字符串,例如,hr/your_password@d:
chicago-mktg
:
下列关键字之一:
APPEND,CREATE,INSERT或REPLACE
:目标表名称
:
用逗号分隔的目标列别名列表
:
任何有效的SQLSELECT语句
缺失的FROM或TO子句使用当前的SQL*Plus连接
SQL>copyD:
\oracle\product\10.2.0\oradata\orcle:
\test\users01.dbf;
用法:
COPYFROMTO{()}USING:
数据库字符串,例如,hr/your_password@d:
chicago-mktg
:
下列关键字之一:
APPEND,CREATE,INSERT或REPLACE
:目标表名称
:
用逗号分隔的目标列别名列表
:
任何有效的SQLSELECT语句
缺失的FROM或TO子句使用当前的SQL*Plus连接
SQL>altertablespaceusersendbackup;
表空间已更改。
SQL>createtablet2tablespaceusersasselect*fromscott.emp;
表已创建。
SQL>altertablespaceusersbeginbackup;
表空间已更改。
SQL>altertablespaceusersendbackup;
表空间已更改。
SQL>updatet2setsal=sal+1;
已更新14行。
SQL>commit;
提交完成。
SQL>altersystemswitchlogfile;
系统已更改。
SQL>altersystemcheckpoint;
系统已更改。
SQL>selectfile_name,online_statusfromdba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
ONLINE_
-------
D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
RECOVER
D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
ONLINE
D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
ONLINE
FILE_NAME
--------------------------------------------------------------------------------
ONLINE_
-------
D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
SYSTEM
D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
ONLINE
SQL>select*fromv$recovery_log;
未选定行
SQL>selectfile#,namefromv$datafile;
FILE#
----------
NAME
--------------------------------------------------------------------------------
1
D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
2
D:
\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DB
展开阅读全文
相关搜索