Oracle管理文件(二)
来接着学习一下Oracle管理文件相对应的操作方式。举了一个详细的使用Oracle管理文件方式来创建数据库的例子,基本上使用了Oracle管理文件,就不用再在后面跟上一长串的文件地址了,对创建来说还是比较方便的,而且删除时无需再跟上datafile子句。
一、取消Oracle管理文件
1、取消数据文件和临时文件
DROP TABLESPACE tablespce_name;
ALTER DATABASE TEMPFILE tempfile_name DROP;
2、取消联机重做日志文件
ALTER DATABASE DROP LOGFILE logfile_name;
ALTER DATABASE DROP LOGFILE MEMBER logfile_name;
3、重命名文件
ALTER DATABASE RENAME FILE file_name1 to file_name2;
ALTER TABLESPACE tablespace_name RENAME DATAFILE datafile_name1 to datafile_name2;
二、Oracle管理文件案例
以数据库最开始创建为例,需要创建所有均为Oracle管理文件
1、设置初始化参数:
DB_CREATE_FILE_DEST = '/u01/oradata/sample'
DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata/sample'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata/sample'
UNDO_MANAGEMENT = AUTO
2、创建数据库
CREATE DATABASE sample
DEFAULT TEMPORARY TABLESPACE dflt_tmp;
注:
① 没有DATAFILE子句,则在'/u01/...'中创建SYSTEM表空间数据文件,文件名按约定规则,起始大小100M,自动扩展无上限;
② 没有LOGFILE子句,创建两个联机重做日志组,每个日志组两个成员,分别位于'/u02/...'和'/u03/...',大小100M;
③ 没有CONTROL_FILES参数,则在'/u02/...'和'/u03/...'中创建两个控制文件,'/u02/...'中为主控制文件;
④ 没有设定UNDO TABLESPACE,则在'/u01/...'创建SYS_UNDOTBS表空间,大小10M,自动扩展无上限;
⑤ 指定了TEMPORARY TABLESPACE,则在'/u01/...'创建dflt_tmp临时表空间,大小100M,自动扩展无上限;
⑥ 所有文件均为Oracle管理文件
3、查询当前文件:
① TABLESPACE文件:V$DATAFILE
② LOGFILE文件:V$LOGFILE
③ CONTROLFILE文件:V$CONTROLFILE
4、管理控制文件
Oracle在创建数据库时会将CONTROL_FILES初始化参数添加到参数文件中。
如果需要,Oracle可以新建、重建控制文件
CREATE CONTROLFILE REUSE
DATABASE sample
LOGFILE GROUP 1 ('/u02/oradata/sample/ora_1_o220rtt9.log',
'/u03/oradata/sample/ora_1_vhs82jdm.log',),
GROUP 2 ('/u02/oradata/sample/ora_2_82jd6nd9.log',
'/u03/oradata/sample/ora_2_nmisk9wj.log',)
NORESETLOGS
DATAFILE '/u01/oradata/sample/ora_system_xu34ymd7.dbf'
MAXLOGFILES 5
MAXLOGHISTORY 100
MAXDATAFILES 10
MAXINSTANCES 2
ARCHIVELOG;
5、管理联机重做日志
ALTER DATABASE ADD LOGFILE
ALTER DATABASE DROP LOGFILE GROUP 3;
6、管理表空间
CREATE TABLESPACE tablespace_name;
DROP TABLESPACE tablespace_name;
ALTER TABLESPACE tablespace_name ADD DATAFILE;
7、归档重做信息
归档日志的文件位置可以通过LOG_ARCHIVE_DEST_n来指定,文件名通过LOG_ARCHIVE_FORMAT参数指定
归档日志文件不是Oracle管理文件
8、备份、还原、恢复
所有Oracle管理文件的备份、恢复与非管理文件相同