Oracle-Oracle数据库物理存储结构管理
Oracle数据库物理存储结构管理
紧接着上一篇博客:Oracle-新建Oracle数据库并连接(图文,详细):https://blog.csdn.net/xu_benjamin/article/details/90209332
进行一些简单的Oracle数据库物理存储结构管理操作
说明:下面的操作由于一些原因,是在sql plus和SQL developer中混合完成的。(有一些是失败的,原因还不太清楚)
其中有 SQL> 表示在slqplus中进行的, 没有就表示在SQL developer中完成的。
经过这两个工具的使用比较过后,我建议使用SQL developer。,这个相比确实是比较好用的,有错误的话提示信息也清楚些,而且写语句是还可以智能提示,还可以想执行那一句就执行那一句(选中要执行的语句那一行,按Ctrl+Enter),我觉得这个功能是非常不错的,写过的语句就不用再写了,当然,还有其他很多功能,非常的不错!
下面的内容可以全部在SQL developer中完成的!(直接输入语句就行不用 SQL> )
- (1)向BOOKSALES数据库的USERS表空间添加一个大小为10MB的数据文件users02.dbf。
SQL> alter tablespace users add datafile
'D:\Oracle\app\administrators\oradata\BOOKSALES\users02.dbf' size 10m;
表空间已更改。
- (2)向BOOKSALES数据库的TEMP表空间添加一个大小为10MB的临时数据文件temp02.dbf。
SQL> alter tablespace temp add tempfile
'D:\Oracle\app\administrators\oradata\BOOKSALES\temp02.dbf' size 10m;
表空间已更改。
- (3)向BOOKSALES数据库的USERS表空间中添加一个可以自动扩展的数据文件user03.dbf,大小5MB,每次扩展1MB,最大容量为100MB。
alter tablespace users add datafile
'D:\Oracle\app\administrators\oradata\BOOKSALES\user03.dbf' size 5m autoextend on next 1m maxsize 100m;
表空间已更改。
- (4)取消BOOKSALES数据库数据文件user03.dbf的自动扩展。
alter database datafile
'D:\Oracle\app\administrators\oradata\BOOKSALES\user03.dbf' autoextend off;
数据库已更改。
- (5)将BOOKSALES数据库数据文件users02.dbf更名为users002.dbf。
SQL> alter tablespace users offline;
表空间已更改。
SQL> host copy
D:\Oracle\app\administrators\oradata\BOOKSALES\users02.dbf D:\Oracle\app\administrators\oradata\BOOKSALES\users002.dbf;
已复制 1 个文件。
SQL> alter tablespace users rename datafile
'D:\Oracle\app\administrators\oradata\BOOKSALES\users02.dbf' to 'D:\Oracle\app\administrators\oradata\BOOKSALES\users002.dbf';
表空间已更改。
SQL> alter tablespace users online;
表空间已更改。
- (6)查询BOOKSALES数据库当前所有的数据文件的详细信息。
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE_NAME
------------------------------------------------------------
FILE_NAME
--------------------------------------------------------------------------------
USERS
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\USERS01.DBF
UNDOTBS1
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\UNDOTBS01.DBF
SYSAUX
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\SYSAUX01.DBF
TABLESPACE_NAME
------------------------------------------------------------
FILE_NAME
--------------------------------------------------------------------------------
SYSTEM
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\SYSTEM01.DBF
USERS
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\USERS002.DBF
USERS
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\USER03.DBF
已选择6行。
- (7)为BOOKSALES数据库添加一个多路复用的控制文件control03.ctl。
SQL> alter system set control_files= 'D:Oracle\app\Administrator\oradata\BOOKSALES\CON TROL01.CTL','D:Oracle\app\Administrator\oradata\BOOKSALES\control03.ctl'scope=spfile;
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host copy D:Oracle\app\Administrator\oradata\BOOKSALES\control01.ctl
D:Oracle\app\Administrator\oradata\BOOKSALES\control03.ctl
已复制 1 个文件。
SQL> startup
说明:这里shutdown后,重新startup可能会出现问题。提示错误:“ORA-12514:TNS:监听程序当前无法识别描述符中请求的服务”。这使可以尝试重启在上一篇博客中连接数据库时的那三个服务试一下。如果不行的话,就尝试如下办法:
在***配置文件<ORACLE_HOME>\NETWORK\ADMIN\listener.ora的监听服务列表中添加特定服务注册信息。例如:添加一个服务名为BOOKSALES的注册信息:
SID_LIST_LISTENER =
(SID_LIST =
...
(SID_DESC =
(GLOBAL_DBNAME = BOOKSALES)
(ORACLE_HOME = D:\Oracle\app\administrators\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)
)
- (8)以二进制文件的形式备份BOOKSALES数据库的控制文件。
SQL> alter database backup controlfile to 'D:Oracle\app\Administrator\oradata\BOOKSALE S\backup\control.bkp';
数据库已更改。
- (9)将BOOKSALES数据库的控制文件以文本方式备份到跟踪文件中,并查看备份的内容。
SQL> alter database backup controlfile to trace;
数据库已更改。
- (10)删除BOOKSALES数据库的控制文件control03.ctl。
说明:可能会出现上面(7)中的问题,可按照上面的办法尝试解决或百度
SQL> alter system set control_files= ' D:\Oracle\app\administrators\oradata\BOOKSALES\CON TROL01.CTL',' D:\Oracle\app\administrators\oradata\BOOKSALES\control03.ctl'scope=spf
ile;
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del D:\Oracle\app\administrators\oradata\BOOKSALES\control03.ctl
SQL> startup
- (11)查询BOOKSALES数据库当前所有控制文件信息。
select name from v$controlfile;
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\CONTROL01.CTL
D:\ORACLE\APP\ADMINISTRATORS\FLASH_RECOVERY_AREA\BOOKSALES\CONTROL02.CTL
- (12)向BOOKSALES数据库添加一个重做日志文件组(组号为4),包含一个成员文件undo04a.log,大小为4MB。
alter database add logfile group 4
'D:\Oracle\app\administrators\oradata\BOOKSALES\undo04a.log' size 4m;
Database已变更。
- (13)向BOOKSALES数据库的重做日志组4中添加一个成员文件,名称为undo04b.log。
alter database add logfile member
'D:\Oracle\app\administrators\oradata\BOOKSALES\undo04b.log' to group 4;
Database已变更。
- (14)将BOOKSALES数据库的重做日志文件组4中所有成员移植到一个新的目录下。
select * from v$log;
alter system switch logfile;
首先使用上述命令查看并将组4的状态改为inactive。
host move D:\Oracle\app\administrators\oradata\BOOKSALES\undo04a.log' D:\Oracle\undo\BOOKSALES\ undo04a.log host move D:\Oracle\app\administrators\oradata\BOOKSALES\undo04b.log D:\Oracle\undo\BOOKSALES\ undo04b.log alter database rename file 'D:\Oracle\app\administrators\oradata\BOOKSALES\undo04a.log','D:\Oracle\app\administrators\oradata\BOOKSALES\undo04b.log' to 'D:\Oracle\undo\BOOKSALES\undo04a.log','D:\Oracle\undo\BOOKSALES\undo04b.log';
Database已变更。
- (15)查询BOOKSALES数据库中所有重做日志文件组的状态。
select group#,sequence#,members,archived,status from v$log;
结果如下图:
- (16)查询BOOKSALES数据库中所有重做日志文件成员的状态。
select group#,status,member from v$logfile;
结果如下图:
- (17)删除BOOKSALES数据库中重做日志组4中的成员文件undo04b.log。
alter database drop logfile member 'D:\ORACLE\UNDO\BOOKSALES\UNDO04B.LOG';
Database已变更。
- (18)删除BOOKSALES数据库的重做日志组4。
SQL> alter database drop logfile group 4;
Database已变更。
- (19)查看BOOKSALES数据库是否处于归档模式。
archive log list
数据库日志模式 归档日志模式
自动归档 已启用
归档目标 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 8
下一个存档日志序列 10
当前日志序列 10
- (20)将BOOKSALES数据库设置为归档模式。
shutdown immediate
select name,value from v$parameter where name='db_recovery_file_dest';
startup mount
alter database archivelog;
- (21)为BOOKSALES数据库设置3个归档目标,其中一个为强制归档目标。
alter system set log_archive_dest_1='location=D:\Oracle\app\administrators\oradata\BOOKSALES\archive';
alter system set log_archive_dest_2='location=D:\Oracle\app\administrators\oradata\archive';
alter system set log_archive_dest_3='location=D:\Oracle\app\administrators\oradata\booksales\archive mandatory'; (22)对BOOKSALES数据库进行5次日志切换,查看归档日志信息。
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
archive log list
数据库日志模式 归档日志模式
自动归档 已启用
归档目标 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 13
下一个存档日志序列 15
当前日志序列 15