Oracle数据库实验笔记
更新时间:2024-05-29 13:14:01 阅读量: 综合文库 文档下载
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
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:\\Documents e:\\test\%users01.dbf 系统找不到指定的文件。
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata\\or cl\%users01.dbf e:\\test\%users01.dbf
改写 e:\\test\%users01.dbf 吗? (Yes/No/All): y 已复制 1 个文件。
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata\\or cl\%users01.dbf e:\\test\%users01.dbf
改写 e:\\test\%users01.dbf 吗? (Yes/No/All): y 已复制 1 个文件。
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata D: \\oracle\\product\\10.2.0\\oradata\\orcl\%users01.dbf; D:\\oracle\\product\\10.2.0\\oradata\\1.txt
另一个程序正在使用此文件,进程无法访问。 已复制 0 个文件。
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata D: \\oracle\\product\\10.2.0\\oradata\\orcl\%users01.dbf; D:\\oracle\\product\\10.2.0\\oradata\\1.txt
另一个程序正在使用此文件,进程无法访问。 已复制 0 个文件。
C:\\Documents
and
Settings\\Administrator>copy
D:\\oracle\\product\\10.2.0\\oradata\\1.txt
D:\\oracle\\product\\10.2.0\\oradata\\orcl\%users01.dbf; 已复制 1 个文件。
C:\\Documents and Settings\\Administrator>
8888*************************************************************
and
Settings\\Administrator>copy
D:\\oracle\\product\\10.2.0\\oradata\\orcl\%users01.dbf
----------
7566 JONES MANAGER 7839 02-4月 -81 2976 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1251 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2851 30
EMPNO ENAME JOB MGR HIREDATE ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ----------
7782 CLARK MANAGER 7839 09-6月 -81 10
7788 SCOTT ANALYST 7566 19-4月 -87 20
7839 KING PRESIDENT 17-11月-81 10
EMPNO ENAME JOB MGR HIREDATE ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ----------
7844 TURNER SALESMAN 7698 08-9月 -81 30
7876 ADAMS CLERK 7788 23-5月 -87 20
7900 JAMES CLERK 7698 03-12月-81 30
EMPNO ENAME JOB MGR HIREDATE ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ----------
7902 FORD ANALYST 7566 03-12月-81 SAL 2451 3001 5001 SAL 1501 1101 951 SAL 3001
COMM COMM 0 COMM 20
7934 MILLER CLERK 7782 23-1月 -82 1301 10
已选择14行。 SQL>
日志文件
C:\\Documents and Settings\\Administrator>sqlplus/nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 11月 2 10:02:17 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> starup mount
SP2-0734: 未知的命令开头 \忽略了剩余的行。 SQL> statup mount
SP2-0734: 未知的命令开头 \忽略了剩余的行。 SQL> startup mount
ORA-01031: insufficient privileges SQL> conn /as sysdba 已连接。
SQL> shut immediate ORA-01109: 数据库未打开
已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。
Total System Global Area 289406976 bytes Fixed Size 1248576 bytes Variable Size 100664000 bytes Database Buffers 180355072 bytes Redo Buffers 7139328 bytes 数据库装载完毕。
SQL> select * from v$logfile;
GROUP# STATUS TYPE
---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
3 ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG NO
2 STALE ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO02.LOG NO
GROUP# STATUS TYPE ---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
1 ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO01.LOG NO
SQL> alter system switch logfile; alter system switch logfile *
第 1 行出现错误: ORA-01109: 数据库未打开
SQL> alter database open 2 ;
数据库已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> shut immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。
Total System Global Area 289406976 bytes Fixed Size 1248576 bytes Variable Size 104858304 bytes Database Buffers 176160768 bytes Redo Buffers 7139328 bytes 数据库装载完毕。
SQL> alter system switch logfile; alter system switch logfile *
第 1 行出现错误: ORA-01109: 数据库未打开
SQL> alter database archivelog;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式 自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 4 下一个存档日志序列 6 当前日志序列 6 SQL> alter database open;
数据库已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> show parameter log_archive_dest;
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string log_archive_dest_1 string log_archive_dest_10 string log_archive_dest_2 string log_archive_dest_3 string log_archive_dest_4 string log_archive_dest_5 string log_archive_dest_6 string log_archive_dest_7 string log_archive_dest_8 string log_archive_dest_9 string
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_state_1 string enable log_archive_dest_state_10 string enable log_archive_dest_state_2 string enable log_archive_dest_state_3 string enable log_archive_dest_state_4 string enable log_archive_dest_state_5 string enable log_archive_dest_state_6 string enable log_archive_dest_state_7 string enable log_archive_dest_state_8 string enable log_archive_dest_state_9 string enable SQL> alter system set log_archive_dest_1'location=E:/oracle'; alter system set log_archive_dest_1'location=E:/oracle' * 第 1 行出现错误: ORA-00927: 缺失等号
SQL> alter system set log_archive_dest_1='location=E:/oracle';
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> select name from V$archive_log; select name from V$archive_log *
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> select name from$archived_log; select name from$archived_log * 第 1 行出现错误:
ORA-00923: 未找到要求的 FROM 关键字
SQL> select name from v$archived_log; NAME
--------------------------------------------------------------------------------
D:\\ORACLE\\PRODUCT\\10.2.0\\FLASH_RECOVERY_AREA\\ORCL\\ARCHIVELOG\\2012_11_02\\O1_MF_1_ 6_896C0PD6_.ARC
E:\\ORACLE\\ARC00007_0794570482.001
SQL> select log_mode from v$database;
LOG_MODE ------------ ARCHIVELOG
SQL> archive log list;
数据库日志模式 存档模式 自动存档 启用 存档终点 E:/oracle 最早的联机日志序列 6 下一个存档日志序列 8 当前日志序列 8
SQL> alter system set log_archive_dest_1='location=E:/oracle1';
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> alter system set log_archive_dest_2='location=E:/oracle2'; 产生多分归档日志文档;
系统已更改。
SQL> alter system switch logfile;
系统已更改。 SQL>
日志挖掘 DDL直接挖 但挖掘dml语句需要将数据库置为 追加日志数据模式.
1.修改追加日志数据模式
SYS@beijing> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME -------- NO
SYS@beijing> alter database add SUPPLEMENTAL log data;
Database altered.
SYS@beijing> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME -------- YES
SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME -------- NO
SQL> alter database add SUPPLEMENTAL log data;
数据库已更改。
SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME --------
YES
SQL> conn /as sysdba 已连接。
SQL> exec dbms_logmnr.add_logfile('/home/oracle/oradata/ora10g/redo01abc.log'); BEGIN dbms_logmnr.add_logfile('/home/oracle/oradata/ora10g/redo01abc.log'); END; *
第 1 行出现错误:
ORA-01284: 文件 /home/oracle/oradata/ora10g/redo01abc.log 无法打开 ORA-00308: 无法打开归档日志 '/home/oracle/oradata/ora10g/redo01abc.log' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件
O/S-Error: (OS 3) 系统找不到指定的路径。 ORA-06512: 在 \ORA-06512: 在 line 1
SQL> exec dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG');
PL/SQL 过程已成功完成。
SQL> NO
SP2-0042: 未知命令 \其余行忽略。 SQL> alter database add SUPPLEMENTAL log data;
数据库已更改。
SQL> alter user scott account unlock identified by seker;
用户已更改。
SQL> update scott.emp set sal=100 ;
已更新14行。
SQL> commit;
提交完成。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME ------------- --------------
1 1 11 52428800 1 NO CURRENT 606095 02-11月-12
2 1 9 52428800 1 YES INACTIVE 604778 02-11月-12
3 1 10 52428800 1 YES INACTIVE 604811 02-11月-12
SQL> select * from v$logfile;
GROUP# STATUS TYPE ---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
3 ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG NO
2 ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO02.LOG NO
GROUP# STATUS TYPE ---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
1 ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO01.LOG NO
SQL> exec dbms_logmnr.add_logfile(' D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG ERROR:
ORA-01756: 引号内的字符串没有正确结束
SQL> NO');
SP2-0042: 未知命令 \其余行忽略。
SQL> exec dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG'); BEGIN dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG'); END; *
第 1 行出现错误:
ORA-01289: 无法添加重复的日志文件
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG ORA-06512: 在 \ORA-06512: 在 line 1
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL 过程已成功完成。
SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='EMP'; 未选定行
SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='emp'; 未选定行
SQL> exec dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO02.LOG');
PL/SQL 过程已成功完成。
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL 过程已成功完成。
SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='EMP'; 未选定行
SQL> exec dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO01.LOG');
PL/SQL 过程已成功完成。
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL 过程已成功完成。
SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='EMP';
SQL_REDO
--------------------------------------------------------------------------------
update \EAAAAAgAAA';
update \AEAAAAAgAAB';
update \AEAAAAAgAAC';
update \AEAAAAAgAAD';
SQL_REDO
--------------------------------------------------------------------------------
update \AEAAAAAgAAE';
update \AEAAAAAgAAF';
update \AEAAAAAgAAG';
update \
SQL_REDO
-------------------------------------------------------------------------------- AEAAAAAgAAH';
update \AEAAAAAgAAI';
update \AEAAAAAgAAJ';
update \AEAAAAAgAAK';
SQL_REDO
--------------------------------------------------------------------------------
update \EAAAAAgAAL';
update \AEAAAAAgAAM';
update \AEAAAAAgAAN';
已选择14行。
SQL> select sql_undo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='EMP';
SQL_UNDO
--------------------------------------------------------------------------------
update \EAAAAAgAAA';
update \AEAAAAAgAAB';
update \AEAAAAAgAAC';
update \AEAAAAAgAAD';
SQL_UNDO
--------------------------------------------------------------------------------
update \AEAAAAAgAAE';
update \AEAAAAAgAAF';
update \AEAAAAAgAAG';
update \
SQL_UNDO
-------------------------------------------------------------------------------- AEAAAAAgAAH';
update \AEAAAAAgAAI';
update \AEAAAAAgAAJ';
update \AEAAAAAgAAK';
SQL_UNDO
--------------------------------------------------------------------------------
update \EAAAAAgAAL';
update \AEAAAAAgAAM';
update \AEAAAAAgAAN';
已选择14行。 SQL>
SGA
SQL> show parameter sga
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 276M sga_target big integer 200M
SQL> alter system set sga_target=300M; alter system set sga_target=300M *
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效 ORA-00823: 指定的 sga_target 的值大于 sga_max_size
SQL> alter system set sga_max_size=200M; alter system set sga_max_size=200M * 第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数
SQL> alter system set sga_max_size=200M scope=spfile;
系统已更改。
SQL> startup force ORACLE 例程已经启动。
Total System Global Area 230686720 bytes Fixed Size 1248236 bytes Variable Size 75498516 bytes Database Buffers 146800640 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 数据库已经打开。 SQL> show parameter sga
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 220M sga_target big integer 220M SQL> alter system set sga_target=250M; alter system set sga_target=250M *
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效 ORA-00823: 指定的 sga_target 的值大于 sga_max_size
SQL> alter system set sga_max_size=200M scope=spfile;
系统已更改。
SQL> startup force ORACLE 例程已经启动。
Total System Global Area 230686720 bytes Fixed Size 1248236 bytes Variable Size 75498516 bytes Database Buffers 146800640 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 数据库已经打开。 SQL> show parameter sga
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 220M sga_target big integer 220M SQL> alter system set sga_max_size=300M scope=spfile;
系统已更改。
SQL> startup force ORACLE 例程已经启动。
Total System Global Area 314572800 bytes Fixed Size 1248768 bytes Variable Size 159384064 bytes Database Buffers 146800640 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 数据库已经打开。 SQL> show parameter sga
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 300M
sga_target big integer 220M SQL> alter system set sga_target=290M;
系统已更改。
SQL> show parameter sga
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 300M sga_target big integer 292M SQL> select * from v$sgainfo;
NAME BYTES RES -------------------------------- ---------- ---
Fixed SGA Size 1248768 No Redo Buffers 7139328 No Buffer Cache Size 222298112 Yes Shared Pool Size 67108864 Yes Large Pool Size 4194304 Yes Java Pool Size 4194304 Yes Streams Pool Size 0 Yes Granule Size 4194304 No Maximum SGA Size 314572800 No Startup overhead in Shared Pool 37748736 No Free SGA Memory Available 8388608
已选择11行。
SQL> select COMPONENT,CURRENT_SIZE from v$sga_dynamic_components where CURRENT_S IZE <> 0;
COMPONENT CURRENT_SIZE ------------------------------ ------------
shared pool ########## large pool ########## java pool ########## DEFAULT buffer cache ########## SQL>
*****************************表空间**************************************
SQL> create user u1 identified by u1 2 default tablespace users --10g 3 temporary tablespace temp --9i 4 quota 10M on users 5 password expire 6 SQL>
SQL> select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users whe
re username='U1';
未选定行
SQL> create user u1 identified by u1 2 default tablespace users --10g 3 temporary tablespace temp --9i 4 quota 10M on users 5 password expire 6 ;
用户已创建。
SQL> select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users wher e username='U1';
USERNAME DEFAULT_TABLESPACE ------------------------------ ------------------------------ TEMPORARY_TABLESPACE ------------------------------
U1 USERS TEMP
SQL> select temporary_tablespace from dba_users where username='SCOTT';
TEMPORARY_TABLESPACE ------------------------------ TEMP
SQL> create temporary tablespace temp2 tempfile 'D:\\oracle\\product\\10.2.0\\oradat a\\orcl\\TEMP02.DBF' size 10M;
表空间已创建。
SQL> alter user scott temporary tablespace temp2;
用户已更改。
SQL> create temporary tablespace temp03 tempfile 'D:\\oracle\\product\\10.2.0\\orada ta\\orcl\\TEMP.DBF' size 10M;
表空间已创建。
SQL> select name from V$datafile; NAME
--------------------------------------------------------------------------------
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\\SYSAUX01.DBF D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS01.DBF D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\EXAMPLE01.DBF
SQL> create temporary tablespace temp04 tempfile 'D:\\test\\temp1.dbf' size 10M;
表空间已创建。
SQL> select TABLESPACE_NAME,CONTENTS from dba_tablespaces;
TABLESPACE_NAME CONTENTS ------------------------------ ---------
SYSTEM PERMANENT UNDOTBS1 UNDO SYSAUX PERMANENT TEMP TEMPORARY USERS PERMANENT EXAMPLE PERMANENT TEMP2 TEMPORARY
TEMP03 TEMPORARY TEMP04 TEMPORARY
已选择9行。
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS ------------------------------ ---------
SYSTEM ONLINE UNDOTBS1 ONLINE SYSAUX ONLINE TEMP ONLINE USERS ONLINE EXAMPLE ONLINE TEMP2 ONLINE TEMP03 ONLINE TEMP04 ONLINE
已选择9行。 SQL>
数据库移库以及恢复 SQL> select name from v$datafile; NAME
------------------------------------------------------------------------------
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\\SYSAUX01.DBF D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS01.DBF D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\EXAMPLE01.DBF
SQL> shut immediate; ORA-01109: 数据库未打开
已经卸载数据库。 ORACLE 例程已经关闭。
SQL> host copy D:\\oracle\\product\\10.2.0\\oradata\\orcl\\*.dbf E:\\test; D:\\oracle\\product\\10.2.0\\oradata\\orcl\\EXAMPLE01.DBF
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 已复制 6 个文件。
SQL> conn / as sysdba 已连接到空闲例程。 SQL> startup mount ORACLE 例程已经启动。
Total System Global Area 289406976 bytes Fixed Size 1248576 bytes Variable Size 100664000 bytes Database Buffers 180355072 bytes Redo Buffers 7139328 bytes 数据库装载完毕。
SQL> select instance_name from v$instance;
INSTANCE_NAME ---------------- orcl
SQL> alter database rename file 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\EXAMPL 1.DBF' to 'E:\\test\\EXAMPLE01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\SYSAUX .DBF' to 'E:\\test\\SYSAUX01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\SYSTEM .DBF' to 2
SQL> alter database rename file 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\SYSTEM0 DBF' to 'E:\\test\\SYSTEM01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\TEMP01
BF' to 'E:\\test\\TEMP01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\UNDOTBS .DBF' to 'E:\\test\\UNDOTBS01.DBF';
数据库已更改。
SQL> alter database rename file 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\USERS01 BF' to 2
SQL> alter database rename file 'D:\\oracle\\product\\10.2.0\\oradata\\orcl\\USERS0 DBF' to 'E:\\test\\USERS01.DBF';
数据库已更改。
SQL> recover database; 完成介质恢复。
SQL> alter database open;
数据库已更改。
SQL> select name from V$datafile; NAME
------------------------------------------------------------------------------
E:\\TEST\\SYSTEM01.DBF E:\\TEST\\UNDOTBS01.DBF E:\\TEST\\SYSAUX01.DBF E:\\TEST\\USERS01.DBF E:\\TEST\\EXAMPLE01.DBF
临时表空间
select name from v$datafile;
create user u1 identified by u1 -----------创建用户指定默认表空间和临时表空间 default tablespace users --10g temporary tablespace temp --9i quota 10M on users password expire;
数据库备份恢复 热备要求数据库处于归档状态,在业务不是很繁忙时用热备
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 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:\\Documents
and
Settings\\Administrator>copy
D:\\oracle\\product\\10.2.0\\oradata\\orcl\%users01.dbf
e:\\test\%users01.dbf 系统找不到指定的文件。
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata\\or cl\%users01.dbf e:\\test\%users01.dbf
改写 e:\\test\%users01.dbf 吗? (Yes/No/All): y 已复制 1 个文件。
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata\\or cl\%users01.dbf e:\\test\%users01.dbf
改写 e:\\test\%users01.dbf 吗? (Yes/No/All): y 已复制 1 个文件。
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata D: \\oracle\\product\\10.2.0\\oradata\\orcl\%users01.dbf; D:\\oracle\\product\\10.2.0\\oradata\\1.txt 另一个程序正在使用此文件,进程无法访问。 已复制 0 个文件。
C:\\Documents and Settings\\Administrator>copy D:\\oracle\\product\\10.2.0\\oradata D: \\oracle\\product\\10.2.0\\oradata\\orcl\%users01.dbf; D:\\oracle\\product\\10.2.0\\oradata\\1.txt 另一个程序正在使用此文件,进程无法访问。 已复制 0 个文件。
C:\\Documents
and
Settings\\Administrator>copy
D:\\oracle\\product\\10.2.0\\oradata\\1.txt
D:\\oracle\\product\\10.2.0\\oradata\\orcl\%users01.dbf; 已复制 1 个文件。
C:\\Documents and Settings\\Administrator>
8888************************************************************* Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp.
C:\\Documents and Settings\\Administrator>sqlplus/nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 11月 30 10:37:43 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba 已连接。
SQL> shut immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。
Total System Global Area 289406976 bytes Fixed Size 1248576 bytes Variable Size 100664000 bytes Database Buffers 180355072 bytes Redo Buffers 7139328 bytes 数据库装载完毕。
SQL> alter database archivelog 2 archive log list
3 alter tablespace users begin backup 4 alter tablespace users begin backup; archive log list *
第 2 行出现错误:
ORA-00933: SQL 命令未正确结束
SQL> alter database archivelog;
数据库已更改。
SQL> alter v 2 ; alter v *
第 1 行出现错误:
ORA-00940: 无效的 ALTER 命令
SQL> alter database open 2 ;
数据库已更改。
SQL> alter tablespace users begin backup 2 ;
表空间已更改。
SQL> copy D:\\oracle\\product\\10.2.0\\oradata\\orcl e:\\test\%users01.dbf 用法: COPY FROM
缺失的 FROM 或 TO 子句使用当前的 SQL*Plus 连接
SQL> copy D:\\oracle\\product\\10.2.0\\oradata\\orcl e:\\test\%users01.dbf ; 用法: COPY FROM
缺失的 FROM 或 TO 子句使用当前的 SQL*Plus 连接 SQL> alter tablespace users end backup;
表空间已更改。
SQL> create table t2 tablespace users as select * from scott.emp;
表已创建。
SQL> alter tablespace users begin backup;
表空间已更改。
SQL> alter tablespace users end backup;
表空间已更改。
SQL> update t2 set sal=sal+1;
已更新14行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> alter system checkpoint;
系统已更改。
SQL> select file_name,online_status from dba_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 * from v$recovery_log;
未选定行
SQL> select file#,name from v$datafile;
FILE# ---------- NAME
--------------------------------------------------------------------------------
1
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\SYSTEM01.DBF
2
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\UNDOTBS01.DBF
3
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\SYSAUX01.DBF
FILE# ---------- NAME
--------------------------------------------------------------------------------
4
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS01.DBF
5
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\EXAMPLE01.DBF
SQL> recover datafile 4; 完成介质恢复。
SQL> select file_name,online_status from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
ONLINE_ -------
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS01.DBF OFFLINE
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> alter database datafile 4 online;
数据库已更改。
SQL> select * from t2;
EMPNO ENAME JOB MGR HIREDATE ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ----------
7369 SMITH CLERK 7902 17-12月-80 20
7499 ALLEN SALESMAN 7698 20-2月 -81 30
7521 WARD SALESMAN 7698 22-2月 -81 30
EMPNO ENAME JOB MGR HIREDATE ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ----------
7566 JONES MANAGER 7839 02-4月 -81 20
7654 MARTIN SALESMAN 7698 28-9月 -81 SAL COMM 801 1601 300 1251 500 SAL COMM 2976 1251 1400
30
7698 BLAKE MANAGER 7839 01-5月 -81 2851 30
EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ----------
7782 CLARK MANAGER 7839 09-6月 -81 10
7788 SCOTT ANALYST 7566 19-4月 -87 20
7839 KING PRESIDENT 17-11月-81 10
EMPNO ENAME JOB MGR HIREDATE ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ----------
7844 TURNER SALESMAN 7698 08-9月 -81 30
7876 ADAMS CLERK 7788 23-5月 -87 20
7900 JAMES CLERK 7698 03-12月-81 30
EMPNO ENAME JOB MGR HIREDATE ---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO ----------
7902 FORD ANALYST 7566 03-12月-81 20
7934 MILLER CLERK 7782 23-1月 -82 10
2451 3001 5001 SAL 1501 1101 951 SAL 3001 1301 COMM 0 COMM
已选择14行。 SQL>
System恢复 SQL> conn/as sysdba 已连接。
SQL> shut immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。
Total System Global Area 535662592 bytes Fixed Size 1375792 bytes Variable Size 234881488 bytes Database Buffers 293601280 bytes Redo Buffers 5804032 bytes 数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> archive log list
数据库日志模式 存档模式 自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 13 下一个存档日志序列 15 当前日志序列 15
SQL> alter tablespace system begin backup;
表空间已更改。
SQL> host copy D:\\app\\Administrator\\oradata\\orcl\\system01.dbf d:\\system01.dbf; 已复制 1 个文件。
正在阅读:
Oracle数据库实验笔记05-29
常见症状问诊练习07-04
意大利人饮食特点06-08
(最新版)基于单片机的简单GPS定位信息显示系统设计毕业设计 - 图文01-19
活性石灰生产手册06-05
项目任务通知单11-27
赴浙江考察报告05-01
威远生化半年报摘要05-11
VSB9文章采集用户手册03-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 数据库
- 笔记
- Oracle
- The Role of the Internet for College Students
- 电器设备安全管理制度
- 铁凝小说《逃跑》阅读
- 2014年自考《工程估价》习题及答案
- 2014年12月保定市高三年级四校联考生物试题
- 杨姓蛇宝宝取名大全
- ECC加密算法
- 吉林大学珠海学院201奖学金
- proe 文件格式的含义详解
- 灭菌
- 梁邱一中2014 - -2015九年级上数学期中复习题及答案4
- 健康管理师二级考试第二套试卷1
- 危险源辩识、风险评价和控制管理程序(第3版)
- 北京房地产公司通讯录大全
- 案例作业-李嘉诚对创业机会的把握
- 西南交大网络教育大学英语I第三次作业
- 《钢筋混凝土结构》 参考答案
- 印光大师常持准提咒
- 湖南师范大学2013年研究生招生简章 - 图文
- 2002级C++面向对象程序设计试题A-计算机学院2003冬天-参考答案