oracle笔记整理四[物理结构管理]

来源:百度文库 编辑:神马文学网 时间:2024/04/29 00:02:00
oracle笔记整理四[物理结构管理]
1、参数文件
--每个实例启动时都要读入一个初始化参数文件
--#注释
--可以以任意顺序指定参数
--若想在一行输入若干参数,要用空格分开,例如
--PROCESSES=100 CPU_COUNT=1 OPEN_CURSORS=10
--若想为某一参数设置多重值,多重值要包含在圆括号中,并用逗号隔开,例如
--ROLLBACK_SEGMENTS=(SEG1,SEG2,SEG3,SEG4,SEG5)
--参数文件中任何变化只有在实例重启后生效
--有些参数可以用ALTER SYSTEM、ALTER SESSION立即设置,称为动态初始化参数
--立即修改实例中所有会话的参数,并保持到实例关闭
ALTER SYSTEM SET parameter_name=value DEFERRED;
--修改整个实例的参数,但已保持的会话参数不变,直到重新连接为止
ALTER SYSTEM SET parameter_name=value;
--在当前会话内改变参数
ALTER SESSION SET parameter_name=value;
--显示所有初始化参数的当前设置
SHOW PARAMETERS;
--显示特定的初始化参数当前设置
SHOW PARAMETERS parameter_name;
2、数据文件
1>、增加数据文件
--Oracle数据库必须至少有一个数据文件且至少应150M,这时只有SYSTEM一个表空间
--增加数据文件受到的限制:
--操作系统限定了每个进程打开的文件数
--Oracle限定了实例打开的数据库的最大打开的数据文件数
--当发出CREATE DATABASE或CREATE CONTROLFILE时,MAXDATAFILES参数指定了控制
--文件的数据文件的初始大小,以后增加的数据文件数若大于该参数但小于初始参数
--文件中的DB_FILES参数设置,则系统会自动调整。DB_FILES设置过小,以后调整时
--要先关闭数据库,若设置太大,会造成内存消耗
--初始参数文件中SGA上限设置
ALTER TABLESPACE mytab ADD DATAFILE 'mydb1.dbf' SIZE 100M;
2>、改变数据文件大小
--方法一,启用数据文件的自动扩展功能
--通过查看DBA_DAT_FILES视图的AUTOEXTENSIBLE列可知数据文件是否为自动扩展
--方法二,手工改变数据文件大小
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' RESIZE 100M;
3>、改变数据文件的可用性
--归档模式下使数据文件脱机或联机
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE;
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE;
--不归档模式下使数据文件脱机并立即删除
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE DROP;
--改变表空间所有数据文件和临时文件可用性
ALTER TABLESPACE tablespacename DATAFILE {ONLINE/OFFLINE};
ALTER TABLESPACE tablespacename TEMPFILE {ONLINE/OFFLINE};
4>、重命名和定位数据文件
a.确定要操作的数据文件的名称
SELECT FILE_NAME,BYTES FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME='mytabname';
b.将包含该数据文件的表空间脱机
c.使用操作系统命令拷贝数据文件到新位置并重新命名
d.在Oracle中重新命名该数据文件
ALTER TABLESPACE mytabname RENAME DATAFILE
'/u02/oracle/rbdb1/users01.dbf',
'/u02/oracle/rbdb1/users02.dbf' TO
'/u03/oracle/rbdb1/users01.dbf',
'/u03/oracle/rbdb1/users02.dbf';
e.使表空间联机
5>、校验数据文件的数据块
--通常将设置DB_BLOCK_CHECKSUM设为FALSE
6>、查看数据文件信息
DBA_DATA_FILES
DBA_EXTENTS
USER_EXTENTES
DBA_FREE_SPACE
USER_FREE_SPACE
V$DATAFILE
V$DATAFILE_HEADER
3、控制文件
1>、创建控制文件拷贝/重命名/重定位控制文件
a.关闭实例
b.使用操作系统命令拷贝控制文件备份到新位置并重新命名
c.修改初始化参数文件中的CONTROL_FILES,增加新控制文件或改变指向
d.重启数据库
2>、使用备份恢复被损坏的控制文件
a.关闭实例
b.使用操作系统命令拷贝控制文件备份覆盖被损坏的控制文件
c.重启数据库
3>、删除控制文件
a.关闭实例
b.修改初始化参数文件,删除CONTROL_FILES中相应条目
c.重启数据库
4>、查看控制文件
V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
V$PARAMETER
4、重做日志文件
1>、增加重做日志文件组
ALTER DATABASE ADD LOGFILE('/oracle/dbs/log1c.rdo',
'/oracle/dbs/log2c.rdo') SIZE 500K;
--也可指定组号,组号应在1和MAXLOGFILES设置之间
ALTER DATABASE ADD LOGFILE GROUP 10('/oracle/dbs/log1c.rdo',
'/oracle/dbs/log2c.rdo') SIZE 500K;
2>、增加重做日志文件组成员
ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;
--也可通过指定组中所有其他成员来识别
ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2c.rdo'
('/oracle/dbs/log2a.rdo','/oracle/dbs/log2b.rdo');
3>、重命名和重定位联机重做日志文件成员
a.关闭数据库
SQL>SHUTDOWN;
b.用操作系统命令拷贝日志文件到新位置并重命名
cp /diska/logs/log1a.rdo /diskc/logs/log1c.rdo
cp /diska/logs/log2a.rdo /diskc/logs/log2c.rdo
c.启动并装配数据库,但不打开它
CONNECT / as SYSDBA
STARTUP MOUNT
d.重命名联机重做日志文件成员
ALTER DATABASE RENAME FILE '/diska/logs/log1a.rdo',
'/diska/logs/log2a.rdo'
TO '/diska/logs/log1c.rdo',
'/diska/logs/log2c.rdo';
e.正常打开数据库,此时转换立即生效
ALTER DATABASE OPEN;
4>、删除重做日志文件组
--删除日志文件组时要考虑以下限制
--一个实例至少需要两组联机重做日志文件
--删除之前要使该日志文件组变为不活动,可以强制重做日志文件转换
--删除之前,必须保证它是归档了的,可查看V$LOG
ALTER DATABASE DROP LOGFILE GROUP 3;
5>、删除重做日志文件组成员
ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';
6>、强制重做日志文件转换
ALTER SYSTEM SWITCH LOGFILE;
7>、清空联机重做日志文件内容
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;
8>、查看联机重做日志文件信息
V$LOG
V$LOGFILE
V$LOG_HISTORY
5、归档重做日志文件