测试环境的Oracle数据库是以前同事安装的,整个oracle目录的空间不到10G,做个稍微大点数据量的测试,就会报空间不足,而且还是非归档模式下,打算启用归档模式做试验,所以得彻底解决一下空间不足的问题。
处理办法也很简单,就是在其他目录下划一块空间,作为Oracle文件新的存放位置。看了看,就/var目录空间剩得多,不管了,就放这个下面了。
(1)root账户登录,创建目录。
# cd /var
# mkdir -p oracledata/orcl
# chown -R oracle:oinstall oracledata/
# chmod -R 775 oracledata/
(2)oracle账户登录,给需要空间的表空间增加文件。
# chmod -R 775 oracledata/
(2)oracle账户登录,给需要空间的表空间增加文件。
SQL> alter tablespace TDD_DB add datafile '/var/oracledata/orcl/TED_DB' size 4096M autoextend on;
表空间已更改。
SQL>
(3)将归档日志移到新目录下。
(3)将归档日志移到新目录下。
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ------------------------------ ---
3 ONLINE /oracle/database/orcl/redo03.log NO
2 ONLINE /oracle/database/orcl/redo02.log NO
1 ONLINE /oracle/database/orcl/redo01.log NO
SQL> alter database drop logfile group 3;
数据库已更改。
SQL> alter database add logfile group 3 ('/var/oracledata/orcl/redo03.log') size 128M reuse;
数据库已更改。
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
第 1 行出现错误:
ORA-01623: 日志 2 是实例 orcl (线程 1) 的当前日志 - 无法删除
ORA-00312: 联机日志 2 线程 1: '/oracle/database/orcl/redo02.log'
表明当前正在写该日志文件,不允许删除,必须切换当前的日志文件。
SQL> alter database drop logfile group 1;
数据库已更改。
SQL> alter database add logfile group 1('/var/oracledata/orcl/redo01.log') size 128M reuse;
数据库已更改。
SQL> select * from v$Log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 0 134217728 1 YES UNUSED 0
2 1 4176 52428800 1 NO CURRENT 111594871 01-3月 -11
3 1 0 134217728 1 YES UNUSED 0
由此可知,日志2确实是 CURRENT ,下面我们切换日志。
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$Log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 4177 134217728 1 NO CURRENT 111623103 01-3月 -11
2 1 4176 52428800 1 NO ACTIVE 111594871 01-3月 -11
3 1 0 134217728 1 YES UNUSED 0
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 4177 134217728 1 NO CURRENT 111623103 01-3月 -11
2 1 4176 52428800 1 NO ACTIVE 111594871 01-3月 -11
3 1 0 134217728 1 YES UNUSED 0
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
第 1 行出现错误:
ORA-01624: 日志 2 是紧急恢复实例 kms (线程 1) 所必需的
ORA-00312: 联机日志 2 线程 1: '/oracle/database/orcl/redo02.log'
alter database drop logfile group 2
*
第 1 行出现错误:
ORA-01624: 日志 2 是紧急恢复实例 kms (线程 1) 所必需的
ORA-00312: 联机日志 2 线程 1: '/oracle/database/orcl/redo02.log'
及时把日志switch切换到1上面,可日志2还是ACTIVE,需要手动checkpoint。
SQL> alter system checkpoint;
系统已更改。
SQL> select * from v$Log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 4177 134217728 1 NO CURRENT 111623103 01-3月 -11
2 1 4176 52428800 1 NO INACTIVE 111594871 01-3月 -11
3 1 0 134217728 1 YES UNUSED 0
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 4177 134217728 1 NO CURRENT 111623103 01-3月 -11
2 1 4176 52428800 1 NO INACTIVE 111594871 01-3月 -11
3 1 0 134217728 1 YES UNUSED 0
SQL> alter database drop logfile group 2;
数据库已更改。
SQL> alter database add logfile group 2('/var/oracledata/orcl/redo02.log') size 128M reuse;
数据库已更改。
至此,日志已迁出默认目录,表空间也得到扩展。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9399028/viewspace-688183/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9399028/viewspace-688183/