简便实现Oracle数据库文件移动方法
Oracle数据库在使用过程中,随着数据的增加数据库文件也逐渐增加,在达到一定大小后有可能会造成硬盘空间不足;那么这时我们可以把数据库文件移动到另一个大的硬盘分区中。下面我就以Oracle for Windows版本中把C盘的数据库文件移动到D盘为例介绍Oracle数据库文件移动的方法和步骤。
1.在sqlplus中连接到要移动文件的Oracle数据库,然后执行如下SQL语句查看Oracle数据库文件位置:
SQL> select file_name from sys.dba_data_files; FILE_NAME -------------------------------------------------------------- C:\ORA8\ORADATA\ORACLE\USERS01.DBF C:\ORA8\ORADATA\ORACLE\DR01.DBF C:\ORA8\ORADATA\ORACLE\TOOLS01.DBF C:\ORA8\ORADATA\ORACLE\INDX01.DBF C:\ORA8\ORADATA\ORACLE\RBS01.DBF C:\ORA8\ORADATA\ORACLE\TEMP01.DBF C:\ORA8\ORADATA\ORACLE\SYSTEM01.DBF
查询到7记录.
记录要移动的文件的位置和名称。
2.下面我们以把文件“C:\ORA8\ORADATA\ORACLE\USERS01.DBF”移动到“D:\ORADATA\USERS01.DBF”为例介绍,要移动其它文件,请安相同的方法(根据实际情况修改文件路径和名称)操作即可。
<1> 首先让所有的用户停止连接该数据库,关闭数据库。在命令行窗口中输入:
C:\svrmgrl(回车) SVRMGR>connect internal(回车) SVRMGR>shutdown immediate(回车) #等待数据库提示关闭 SVRMGR>exit
<2> 从“C:\ORA8\ORADATA\ORACLE\”目录下找到文件“USERS01.DBF”,然后复制到目录“D:\ORADATA\”下面。假如移动多个文件,重复该步骤。
<3> 进入命令窗口,按以下内容输入:
C:\svrmgrl(回车)
SVRMGR>connect internal(回车)
SVRMGR>startup mount(回车)
#等待数据库提示装载成功
SVRMGR>alter database rename file 'C:\ORA8\ORADATA\ORACLE\USERS01.DBF' to 'D:\ORADATA\USERS01.DBF';
#提示语句已处理后,假如要移动多个文件,修改文件路径和名称后重复执行上面的语句。完成后打开数据库。
SVRMGR>alter database open;
SVRMGR>exit
数据库文件移动成功。
作者: knowsky, 出处:IT专家网论坛, 责任编辑: 陈子琪
本篇文章摘自csdn
相关文档:
解决办法:
1.使用Oracle用户登录系统,在CMD中启用SQLPLUS
2.sqlplus /nolog
3.SQL> connect /as sysdba
Connected.
4.SQL> alter user system account unlock;
User altered.
锁定账号方法:
1.SQL> alter user system account lock;
& ......
默认情况下,在Oracle的主机上(linux系统)的Oracle操作系统用户下,以sys用户登陆数据库时可以不用输入密码直接登录。实际上,只要是属于dba组(linux)或osdba组(windows)下,都可以不用密码进行登录。这是认证方式称为OS认证。
这种登录方式的控制,是通过$ORACLE_HOME/network/admin/sqlnet.ora中的:
SQLNET.AUTH ......
Oracle job 管理
SVRMGR> select * from dba_jobs;
初始化相关参数job_queue_processes
alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;job_queue_interval = 10 //调度作业刷新频率秒为单位
DBA_JOBS describes all jobs in the database.
USER_JO ......
方案1 适用于oracle9i以上!
select * from
(select row_number() over(order by sendid desc) rn,m.* from xxt_msgreceive m )
where rn <1010 and rn>=1000
方案2
SELECT * from (SELECT A.*, ROWNUM RN from (SELECT * from xxt_msg where sendstatus=1 order by msgid desc) A WHERE ROWNUM < ......
============================Question================================
SQL> select * from emp;
EMPID EMPNAME SALARY DEPTID
---------- ----------- ......