Oracle 移动数据库文件
Oracle
移动数据库文件
Oracle数据库由数据文件,控制文件和联机日志文件
三种文件组成。
由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,我們可能会考虑移动数据库文件。(注:
恢复数据库时非常
有用,属于冷备份)
查询当前数据库中,相关文件路径
select * from v$datafile;
select * from v$controlfile;
select * from v$logfile;
根据以上路径,找到当前数据库相应文件路径。
一.移动数据文件:
可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。
1. ALTER DATABASE方法;
-- 用此方法,可以移动任何表空间的数据文件。
STEP 1. 停数据库:
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;
STEP 2.用操作系统命令移动数据文件:
将数据文件 'test.dbf' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
mv /ora/oracle/data1/test.dbf /ora/oracle/data2
STEP 3. Mount数据库,用ALTER DATABASE命令将数据文件改名:
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/test.dbf' TO
'/ora/oracle/data2/test.dbf';
STEP 4. 打开数据库:.
SQL> ALTER DATABASE OPEN;
SQL>SELECT NAME,STATUS from V$DATAFILE;
2. ALTER TABLESPACE方法:
用此方法,要求此数据文件既不属于SYSTEM表空间,也不属于含有ACTIVE回滚段或临时段的表空间。觉得麻烦,省略不用了。
二. 移动控制文件:
控制文件 在 INIT.ORA文件中指定。移动控制文件相对比较简单,下数据库,
编辑INIT.ORA,移动控制文件,重启动数据库。
STEP 1. 停数据库:
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;
STEP 2.用操作系统命令 移动控制文件:
--将控制文件'ctl3orcl.ctl' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
mv /ora/oracle/data1/ctl3orcl.ctl /ora/oracle/data2
STEP 3. 编辑INIT.ORA文件:
INIT.ORA文件的在ORACLE_HOME/dbs目录下,
修改参数 "control_files",其中指定移动后的控制文件:
control_files =
(/ora/oracle/data1/ctrlorcl1.ctl,/ora/oracle/data1/
相关文档:
Oracle数组一般可以分为固定数组和可变数组
固定数组
Sql代码
declare
type v_ar is varray(10) of varchar2(30);
my_ar v_ar:=v_ar('g','m','d','龚','帅');
begin
for ......
CREATE OR REPLACE PROCEDURE PROC_T(
RESULT OUT NUMBER
)
IS
V_NAME emp%ROWTYPE;
CURSOR CUS_T IS SELECT * from EMP;
BEGIN
OPEN CUS_T;
loop
FETCH CUS_T INTO V_NAME;
exit when cus_t%notfound;
RESULT:=CUS_T%ROWCOUNT;
end loop;
CLOSE CUS_T;
END PROC_T; ......
1,闪回数据库到之前某时间点(在安装时需要开放闪回功能)
不支持表空间删除
select name from v$database;
--看是否打开闪回功能
select flashback_on,name from v$database;
select name from v$bgprocess where paddr<>'00' order by 1;
打开闪回功能
SQL> shutdown immedia ......