Chapter 4 数据字典&控制文件
Step 1:数据字典
C:\Documents and Settings\Administrator>sqlplus system/password as sysdba
SQL> connect system/password as sysdba
已连接。
SQL> select name, created,log_mode,open_mode from v$database;
NAME CREATED LOG_MODE OPEN_MODE
--------- -------------- ------------ ----------
ORCL 13-7月 -09 NOARCHIVELOG READ WRITE
显示的结果表示:公司的Oracle数据库的名字为ORCL ,创建为2009年7月13号,该数据库运行在非归档模式,数据库的状态为可读可写)(正常状态)。
SQL> col host_name for a15
SQL> select host_name,instance_name,version from v$instance;
HOST_NAME INSTANCE_NAME VERSION
--------------- ---------------- -----------------
DINGBAOG-C3D187 orcl
显示的结果表示:运行公司的Oracle数据库的计算机的主机名为DINGBAOG-C3D187,公司Oracle数据库的实例名也为orcl ,数据库管理系统的版本为
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database
PL/SQL Release
CORE
TNS for 32-bit Windows: Version
NLSRTL Version
显示的结果给出了有关公司所安装的Oracle数据库管理系统版本方面的详细信息。
SQL> col name for a45
SQL> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- ------------------------------ --- ---------- --------------
D:\DISK3\CONTROL01.CTL NO 16384 430
D:\DISK6\CONTROL02.CTL NO 16384 430
D:\DISK9\CONTROL03.CTL NO 16384 430
显示的结果可以了解:该数据库共有3个控制文件,它们放在了同一个硬盘的相同目录下,只是文件名略有不同而已。
SQL> select group#,members,bytes,status,archived from v$log;
GROUP# MEMBERS BYTES STATUS ARC
---------- ---------- ---------- ---------------- ---
1 3 15728640 CURRENT NO
2 3 15728640 INACTIVE NO
3 3 15728640 INACTIVE NO
4 3 15728640 INACTIVE NO
5 3 15728640 INACTIVE NO
显示的结果表示:公司的Oracle数据库一共有5组(group)重做日志,每个重做日志组中有一个成员(member),每个重做日志成员的大小,
都没有被归档(最后一列都为NO),oracle数据库当前正在操作的重做日志组为第1组(Status列为Current).
SQL> col member for a45
SQL> select * from v$logfile;
SQL> col member for a45
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- --------------------------------------------- ---
3 STALE ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
2 ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
1 ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
1 ONLINE D:\DISK6\ORCL\ONLINELOG\REDO01B.LOG NO
2 ONLINE D:\DISK6\ORCL\ONLINELOG\REDO02B.LOG NO
3 STALE ONLINE D:\DISK6\ORCL\ONLINELOG\REDO03B.LOG NO
4 STALE ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
4 STALE ONLINE D:\DISK6\ORCL\ONLINELOG\REDO
4 STALE ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
5 STALE ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
5 STALE ONLINE D:\DISK6\ORCL\ONLINELOG\REDO
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- --------------------------------------------- ---
5 STALE ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
3 STALE ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
2 ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
1 ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
已选择15行。
显示的结果表示为:数据库的所有重做日志(成员)文件都存放在D盘的相同目录(D:\DISK9\ORCL\ONLINELOG\)下
SQL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST //D:\oracle\ora92\RDBMS
最早的联机日志序列 117
当前日志序列 121
显示的结果表示为:数据为运行在非归(存)档模式,ARCH后台进程也没有启动(自动存档禁用),归档都存放在D盘的oracle\ora92\RDBMS目录下。
SQL> select tablespace_name,block_size,status,contents,logging from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE STATUS CONTENTS LOGGING
--------------- ---------- --------- --------- ---------
SYSTEM 8192 ONLINE PERMANENT LOGGING
UNDOTBS1 8192 ONLINE UNDO LOGGING
SYSAUX 8192 ONLINE PERMANENT LOGGING
TEMP 8192 ONLINE TEMPORARY NOLOGGING
USERS 8192 ONLINE PERMANENT LOGGING
JINLIAN_INDEX 8192 ONLINE PERMANENT LOGGING
JINLIAN_UNDO 8192 ONLINE UNDO LOGGING
JINLIAN_TEMP 8192 ONLINE TEMPORARY NOLOGGING
PIONEER_DATA 8192 ONLINE PERMANENT LOGGING
PIONEER_INDX 8192 ONLINE PERMANENT LOGGING
PIONEER_UNDO 8192 ONLINE UNDO LOGGING
TABLESPACE_NAME BLOCK_SIZE STATUS CONTENTS LOGGING
--------------- ---------- --------- --------- ---------
PIONEER_TEMP 8192 ONLINE TEMPORARY NOLOGGING
已选择12行。
显示的结果表示为:数据库的表空间数量,它们的数据块大小都为8KB,都是联机(在线)状态,除了TEMP之外都受到重做日志的保护,其中TEMP为临时表空间(排序时),非UNDOTBS1为还原表空间,其他的都是永久的表空间。
SQL> col file_name for a50
SQL> select file_id,file_name,tablespace_name,status,bytes from dba_data_files;
FILE_ID FILE_NAME TABLESPACE_NAME STATUS BYTES
---------- -------------------------------------------------- --------------- --------- ----------
F
5 D:\DISK6\ORCL\JINLIAN_INDEX.DBF JINLIAN_INDEX AVAILABLE 52428800
6 D:\DISK7\ORCL\JINLIAN_UNDO.DBF JINLIAN_UNDO AVAILABLE 52428800
7 D:\DISK2\ORCL\PIONEER_DATA.DBF PIONEER_DATA AVAILABLE 104857600
8 D:\DISK4\ORCL\PIONEER_INDX.DBF PIONEER_INDX AVAILABLE 104857600
9 D:\DISK6\ORCL\PIONEER_UNDO.DBF PIONEER_UNDO AVAILABLE 52428800
FILE_ID FILE_NAME TABLESPACE_NAME STATUS BYTES
---------- -------------------------------------------------- --------------- --------- ----------
10 D:\DISK8\ORCL\JINLIAN2_UNDO.DBF JINLIAN_UNDO AVAILABLE 26214400
已选择10行。
显示的结果给出了每个表空间所属的数据文件的文件号、文件名、状态及字节数(大小)。
SQL> select username,created from dba_users;
USERNAME CREATED
------------------------------ --------------
MDDATA 30-8月 -05
DIP 30-8月 -05
SCOTT 30-8月 -05
TSMSYS 30-8月 -05
MDSYS 30-8月 -05
ORDSYS 30-8月 -05
CTXSYS 30-8月 -05
ANONYMOUS 30-8月 -05
EXFSYS 30-8月 -05
DMSYS 30-8月 -05
DBSNMP 30-8月 -05
USERNAME CREATED
------------------------------ --------------
WMSYS 30-8月 -05
SYSMAN 30-8月 -05
XDB 30-8月 -05
ORDPLUGINS 30-8月 -05
SI_INFORMTN_SCHEMA 30-8月 -05
OLAPSYS 30-8月 -05
OUTLN 30-8月 -05
MGMT_VIEW 30-8月 -05
SYS 30-8月 -05
SYSTEM 30-8月 -05
已选择21行。
显示的结果给出了数据库系统中的所有用户和他们创建日期。
Part2 :控制文件
SQL> col name for a25
SQL> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- ------------------------- --- ---------- --------------
D:\DISK3\CONTROL01.CTL NO 16384 430
D:\DISK6\CONTROL02.CTL NO 16384 430
D:\DISK9\CONTROL03.CTL NO 16384 430
命令表示为数据库的控制文件的现有位置。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭
命令表示为正常关闭数据的oracle命令。
提示:如果需要乖所有的用户都 退出Oracle数据库后才能关闭数据库,可能需要使用shutdown命令。
。
SQL> host copy D:\....\CONTROL01.CTL D:\..\CONTROL01.CTL
命令表示为操作系统复制。
提示host表示后面的命令是操作系统执行而不是Oracle命令,如果是在SVRMGR>提示下(使用的是server manager),也可以使用!来代替host,在不同的Oracle版本中文件的命令方式可能会有不同,读者最好按所使用的Oracle版本的约定来命名文件。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 247466884 bytes
Database Buffers 356515840 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- ------------------------- --- ---------- --------------
D:\DISK3\CONTROL01.CTL NO 16384 430
D:\DISK6\CONTROL02.CTL NO 16384 430
D:\DISK9\CONTROL03.CTL NO 16384 430
重看控制是否在新的磁盘目录下。
Chapter 5 重做日志文件
5.11 重做日志配置的应用实例
5-40
SQL> set line 150
SQL> select group#,sequence#,members,bytes,status,archived from v$log;
GROUP# SEQUENCE# MEMBERS BYTES STATUS ARC
---------- ---------- ---------- ---------- ---------------- ---
1 121 3 15728640 INACTIVE NO
2 118 3 15728640 INACTIVE NO
3 0 3 15728640 UNUSED NO
5 122 3 15728640 CURRENT NO
结果表示数据库中所有重做日志组中都只有一个成员。
5-43
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS
---------- ------- ------- ------------------------------------------------------- --
3 ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
2 ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
1 ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
1 ONLINE D:\DISK6\ORCL\ONLINELOG\REDO01B.LOG NO
2 ONLINE D:\DISK6\ORCL\ONLINELOG\REDO02B.LOG NO
3 ONLINE D:\DISK6\ORCL\ONLINELOG\REDO03B.LOG NO
5 ONLINE D:\DISK3\ORCL\ONLINELOG\REDO
5 ONLINE D:\DISK6\ORCL\ONLINELOG\REDO
5 ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
3 ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
2 ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
GROUP# STATUS TYPE MEMBER IS
---------- ------- ------- ------------------------------------------------------- --
1 ONLINE D:\DISK9\ORCL\ONLINELOG\REDO
已选择12行。
结果显示数据库中所有的重做日志文件都放在一张磁盘上。
5-44
alter database add logfile
('D:\Disk3\MOON\ONLINELOG\REDO
'D:\Disk6\MOON\ONLINELOG\REDO04B.LOG',
'D:\Disk9\MOON\ONLINELOG\REDO
size
命令行表示在数据库中添加新的重做日志组。
5-45