一.DataFile脱机或联机的两种方法:
①ALTERDATABASE语句修改单独的DataFile
②ALTERTABLESPACE语句修改所有的DataFile
1、在ARCHIVRLOG模式下的更改DataFile状态
ALTERDATABASEDATAFILE'/u02/oracle/rbdb1/stuff01.dbf'ONLINE;
ALTERDATABASEDATAFILE'/u02/oracle/rbdb1/stuff01.dbf'OFFLINE;
或者用文件号来表示:
SQL>selectfile#,name,checkpoint_change#fromv$datafile;
FILE#
|
NAME
|
CHECKPOINT_CHANGE#
|
1
|
D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF
|
1194854
|
2
|
D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF
|
1194854
|
3
|
D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF
|
1194854
|
4
|
D:/ORACLE/ORADATA/DBA/USERS01.DBF
|
1194854
|
5
|
D:/ORACLE/ORADATA/DBA/TEST01.DBF
|
1203262
|
ALTERDATABASEDATAFILE5ONLINE;
ALTERDATABASEDATAFILE5OFFLINE;
注:只有在ARCHIVELOG模式下才可使用ALTERDATABASE来更改DataFile
2、在NOARCHIVELOG模式下使DataFile脱机
由于在NOARCHIVELOG模式下,数据文件脱机后会造成数据的遗失,所以只能使用ALTERDATABASE语句下带有DATAFILE和OFFLINEDROP子句的选项将该DataFile直接取消,例如该DataFile只包含临时段数据,并没有备份时
ALTERDATABASEDATAFILE'/u02/oracle/rbdb1/users3.dbf'OFFLINEDROP;
3、修改TableSpace中所有DataFile或TempFile的可用性
ALTERTABLESPACE...DATAFILE{ONLINE|OFFLINE}
ALTERTABLESPACE...TEMPFILE{ONLINE|OFFLINE}
注:修改某TableSpace中的所有数据文件,但是TableSpace本身的状态不改变。
我们不能使用'alterdatabasedatafile...offline'在归档模式下,但是'altertablespace...offline'可以。
我们不是使用'altertablespace...offline'在数据库的read-only模式下,但是'alterdatabasedatafile...offline'可以。
总结:
①ALTERTABLESPACE可以在数据库装载状态时发布,无需打开
②涉及到系统表空间、撤销表空间、默认临时表空间时,必须是未打开的数据库
③ALTERDATABASEDATAFILE语句中必须填入文件全名
二.表空间与数据文件脱机的区别
1.ALTERTABLESPACE...OFFLINE
Doesacheckpointonthedatafiles
Takesthedatafilesoffline
表空间Offline时,数据文件的SCN会被冻结,而且表空间的数据文件offline/online时又会发生文件检查点,使单个数据文件SCN和数据库其他问题不一致。
表空间online时,Oracle会取得当前SCN,解冻offline文件SCN,和当前SCN同步。
tablespaceoffline有几种选项可供选择normal,temporary,immediate,forrecovery,而在datafile中则没有这些选项。
SQL>selectdbms_flashback.get_system_change_numberfromdual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1203246
SQL>altertablespacetestoffline;
Tablespacealtered.
SQL>selectfile#,name,checkpoint_change#fromv$datafile;
FILE#
|
NAME
|
CHECKPOINT_CHANGE#
|
1
|
D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF
|
1194854
|
2
|
D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF
|
1194854
|
3
|
D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF
|
1194854
|
4
|
D:/ORACLE/ORADATA/DBA/USERS01.DBF
|
1194854
|
5
|
D:/ORACLE/ORADATA/DBA/TEST01.DBF
|
1203262
|
SQL>selectdbms_flashback.get_system_change_numberfromdual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1203328
SQL>altertablespacetestonline;
Tablespacealtered.
SQL>selectfile#,name,checkpoint_change#fromv$datafile;
FILE#
|
NAME
|
CHECKPOINT_CHANGE#
|
1
|
D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF
|
1,194,854
|
2
|
D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF
|
1,194,854
|
3
|
D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF
|
1,194,854
|
4
|
D:/ORACLE/ORADATA/DBA/USERS01.DBF
|
1,194,854
|
5
|
D:/ORACLE/ORADATA/DBA/TEST01.DBF
|
1,203,343
|
SQL>selectdbms_flashback.get_system_change_numberfromdual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1203440
2.ALTERDATABASEDATAFILE...OFFLINE
单纯的offlinedatafile,将不会触发文件检查点,只有针对offlinetablespace的时候才会触发文件检查点,这也是为什么onlinedatafile需要mediarecovery而onlinetablespace不需要。
注:只有在ARCHIVELOG模式下才可使用ALTERDATABASE来更改DataFile
SQL>selectfile#,name,checkpoint_change#fromv$datafile;
FILE#
|
NAME
|
CHECKPOINT_CHANGE#
|
1
|
D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF
|
1,194,854
|
2
|
D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF
|
1,194,854
|
3
|
D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF
|
1,194,854
|
4
|
D:/ORACLE/ORADATA/DBA/USERS01.DBF
|
1,194,854
|
5
|
D:/ORACLE/ORADATA/DBA/TEST01.DBF
|
1,203,343
|
SQL>selectdbms_flashback.get_system_change_numberfromdual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1219831
SQL>alterdatabasedatafile5offline;
Databasealtered.
SQL>selectfile#,name,checkpoint_change#fromv$datafile;
FILE#
|
NAME
|
CHECKPOINT_CHANGE#
|
1
|
D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF
|
1,194,854
|
2
|
D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF
|
1,194,854
|
3
|
D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF
|
1,194,854
|
4
|
D:/ORACLE/ORADATA/DBA/USERS01.DBF
|
1,194,854
|
5
|
D:/ORACLE/ORADATA/DBA/TEST01.DBF
|
1,203,343
|
SQL>selectdbms_flashback.get_system_change_numberfromdual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1219882
SQL>alterdatabasedatafile5online;
Erroratline1
ORA-01113:文件5需要介质恢复
ORA-01110:数据文件5:'D:/ORACLE/ORADATA/DBA/TEST01.DBF'
SQL>recoverdatafile5;
完成介质恢复
SQL>alterdatabasedatafile5online;
Databasealtered.
SQL>selectfile#,name,checkpoint_change#fromv$datafile;
FILE#
|
NAME
|
CHECKPOINT_CHANGE#
|
1
|
D:/ORACLE/ORADATA/DBA/SYSTEM01.DBF
|
1,194,854
|
2
|
D:/ORACLE/ORADATA/DBA/UNDOTBS01.DBF
|
1,194,854
|
3
|
D:/ORACLE/ORADATA/DBA/SYSAUX01.DBF
|
1,194,854
|
4
|
D:/ORACLE/ORADATA/DBA/USERS01.DBF
|
1,194,854
|
5
|
D:/ORACLE/ORADATA/DBA/TEST01.DBF
|
1,219,929
|
SQL>selectdbms_flashback.get_system_change_numberfromdual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1220043
分享到:
相关推荐
详细罗列alter database操作命令及详细解释
数据库管理与应用 2.3.2 使用ALTER DATABASE语句修改数据库.pdf 学习资料 复习资料 教学资源
USE [master] GO /****** 对象: Database [MyHotel] 脚本日期: 02/16/2007 13:17:36 ******/ CREATE DATABASE [MyHotel] ON PRIMARY ( NAME = N'MyHotel_dat', FILENAME = N'G...ALTER DATABASE [MyHotel] SET DB_CHAI
ALTER DATABASE DATAFILE ‘D:\ORACLE\ORADATA\ORCL\userdata03.dbf’ AUTOEXTEND ON NEXT 5M MAXSIZE 100M; (4) ALTER DATABASE DATAFILE ‘D:\ORACLE\ORADATA\ORCL\example02.dbf’ RESIZE 40M; (5) ...
alter database datafile 2 offline; 2、 模拟tablespace丢失或损坏进行恢复 (1) backup tablespace apollo_data (2) drop tablespace apollo_data 提示表空间非空,查看下里面的内容,是建的一些测试表。 ...
主要描述几种方式下得... svrmgrl> alter database datafile filename offline drop; svrmgrl> alter database open; svrmgrl> drop tablespace tablespace_name including contents; 重建表空间及所有对象.
alter database mount alter database open 5、startup restrict 约束方式启动 这种方式能够启动数据库,但只允许具有一定特权的用户访问 非特权用户访问时,会出现以下提示: ERROR: ORA-01035: ORACLE 只允许...
SQL> alter database recover managed standby database using current logfile disconnect from session; SQL> select open_mode,switchover_status,database_role,name from v$database; MOUNTED NOT ALLOWED ...
TVTools AlterID 是一款解决TeamViewer被检测为商业用途的无限换ID工具,使用TeamViewer远程控制软件的朋友都知道,TeamViewer不管是什么所谓的破解版还是TeamViewer免费版使用过程都会出现一些TeamViewer被检测为...
TeamViewer14认证工具AlterID,修改windows下的TeamViewer。
ALTER DATABASE YouYongSql SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE YouYongSql COLLATE Chinese_PRC_CI_AS; ALTER DATABASE YouYongSql SET MULTI_USER; 用户类型 管理员 admin 123456 普通...
ALTER DATABASE YouYongSql SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE YouYongSql COLLATE Chinese_PRC_CI_AS; ALTER DATABASE YouYongSql SET MULTI_USER; 用户类型 管理员 admin 123456 普通...
SQL>alter database datafile 19 offline drop; 提示:数据库已更改。 循环使用最后两步,直到alter database open;后不再提示错误,出现“数据库已更改”。 然后接着输入即可 SQL>shutdown normal 提示:数据库...
alter database 修改数据库的权限 alter procedure 修改拥有的存储过程权限 alter profile 修改资源限制简表的权限 alter resource cost 设置佳话资源开销的权限 alter rollback segment 修改回滚段的...
ALTER DATABASE CustomerResourceSystem SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE CustomerResourceSystem COLLATE Chinese_PRC_CI_AS; ALTER DATABASE CustomerResourceSystem SET MULTI_USER; ...
ALTER DATABASE YYS SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE YYS COLLATE Chinese_PRC_CI_AS; ALTER DATABASE YYS SET MULTI_USER; 用户类型 管理员 admin 123456 普通用户 qqq 123456 ...
ALTER DATABASE YYS SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE YYS COLLATE Chinese_PRC_CI_AS; ALTER DATABASE YYS SET MULTI_USER; 用户类型 管理员 admin 123456 普通用户 qqq 123456 模块...
alter 的使用方法,很新手使用。例如:增加字段 alter table A add(AK Varchar2(20))
ALTER DATABASE SystemArticle SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE SystemArticle COLLATE Chinese_PRC_CI_AS; ALTER DATABASE SystemArticle SET MULTI_USER; 除了后面新加的...