一、使用offline数据文件的方法
目前累计服务客户近1000家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供网站设计制作、做网站、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联公司始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。
非归档模式使用:alter database datafile '...' offline drop;
归档模式使用: alter database datafile '...' offline;
说明:
1) 以上命令只是将该数据文件OFFLINE,而不是在数据库中删除数据文件。该数据文件的信息在控制文件种仍存在。查询v$datafile,仍显示该文件。
2) 归档模式下offline和offline drop效果是一样的
3) offline后,存在此datafile上的对象将不能访问
4) noarchivelog模式下,只要online redo日志没有被重写,可以对这个文件recover后进行online操作
实际使用案例:
直接删除数据文件后无法进入系统的解决方案
正常情况下,删除表空间的正确方法为:
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
如果没有通过以上命令删除而直接删除了数据文件,将导致数据库无法打开。
如果直接删除了数据文件
普通用户登录时,则报错:
ORA-01033: ORACLE initialization or shutdown in progress
sys用户可以正常登录
但进行操作时(SELECT count(1) FROM user_tables),则会报错:
ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
如果执行命令alter database open以打开数据库时,又报如下错:
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 12: 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF'
说明数据库没找到这个数据文件
因为数据文件在没有被offline的情况下物理删除了,导致oracle的数据不一致,因此启动失败.
通过以下方法即可解决
解决方法:
sqlplus sys/orcl@orcl as sysdba;
SQL alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop;
SQL alter database open;
SQL drop tablespace CTBASEDATA;
二、Oracle 10G R2开始,可以采用:Alter tablespace tablespace_name drop datafile file_name;来删除一个空数据文件,并且相应的数据字典信息也会清除:
sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files
2 where tablespace_name='USERS';
FILE_ID FILE_NAME TABLESPACE_NAME
------- -------------------------------------------- ------------------
4 /u01/app/oracle/oradata/orcl/users01.dbf USERS
sys@ORCLalter tablespace users add datafile
2 '/u01/app/oracle/oradata/orcl/users02.dbf' size 5M autoextend off;
Tablespace altered.
sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files
2 where tablespace_name='USERS';
FILE_ID FILE_NAME TABLESPACE_NAME
------- -------------------------------------------- -------------------
4 /u01/app/oracle/oradata/orcl/users01.dbf USERS
9 /u01/app/oracle/oradata/orcl/users02.dbf USERS
sys@ORCLdrop table test;
Table dropped.
sys@ORCLcreate table test tablespace users
2 as
3 select * from dba_objects;
Table created.
sys@ORCLselect SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents
2 where file_id=9;
SEGMENT_NAME FILE_ID BLOCKS
------------------------------ ---------- ----------
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 8
TEST 9 128
TEST 9 128
17 rows selected.
sys@ORCLalter table test move tablespace PERFSTAT; --把表移动到其它表空间
Table altered.
sys@ORCLselect SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents
2 where file_id=9;
no rows selected
sys@ORCLalter tablespace users drop datafile
2 '/u01/app/oracle/oradata/orcl/users02.dbf';
Tablespace altered.
sys@ORCLselect file_id,file_name,tablespace_name from dba_data_files
2 where tablespace_name='USERS';
FILE_ID FILE_NAME TABLESPACE_NAME
------- -------------------------------------------- ---------------------
4 /u01/app/oracle/oradata/orcl/users01.dbf USERS
三、oracle 10g可以删除临时表空间的文件
alter database tempfile '/home/oracle/temp01.dbf' drop including datafiles;
在ORACLE表中删除数据通常有两种方法:一种是使用delete,一种是使用truncate。
delete 优点:1、可以增加WHERE条件来进行选择性删除。
2、可以通过rollback进行回滚。
缺点:1、速度较慢。
truncate 优点:1、速度很快。
缺点:1、不能加条件删除。
2、无法通过rollback进行数据回滚。
1.停止ORACLE的所有服务
2.删除注册表信息
local_machine\software\oracle;
local_machine\system\currentcontrolset\services下关于oracle的项; local_machine\system\currentcontrolset\services\eventlog\application下关于oracle的项
3.删除ORACLE文件夹(2个,一个是安装路径下,一个是c:\program files\下)
4.重启电脑
如果你已经执行了卸载,执行第2步,然后重启电脑,应该就可以把残留文件删掉了.
Oracle PLSQL删除列步骤1、登录到数据库2、在左边Obiects栏里的Tables中找到需要删除列的表,展开3、选择columns,展开4、找到需要删除的列,右击,drop,5、完成
彻底卸载plsql的具体步骤如下:
我们需要准备的材料分别是:电脑、plsql。
1、首先我们打开电脑开始菜单栏中的“控制面板”。
2、然后我们在弹出来的窗口中点击打开“程序和功能”。
3、然后我们在弹出来的窗口中找到plsql,右键单击选择“卸载”即可。
通过电脑中的控制面板无法对sqlserver软件彻底删除,可以借助电脑管家进行彻底卸载,具体的卸载步骤如下:
1、打开电脑,然后找到并打开电脑中的电脑管家,并点击页面中的“软件管理”,如下:
2、然后会进入到软件管理页面,可以看到左边有很多选项,找到“卸载”选项:
3、在卸载选项页面中,找到中间列表的sqlserver软件,点击右侧“卸载”选项:
4、然后会弹出一个确定卸载的窗口,点击页面中的“确定”,这样就可以将sqlserver从电脑中彻底卸载干净了:
删除的操作步骤如下:
停用oracle服务,进入计算机中的管理,在服务中,找到oracle开头的一切服务,右点击选择停止。
在开始菜单中,找到Universal Installer,点击运行Oracle Universal Installer,卸载产品。
在所有产品清单的窗口中,打开全部展开,除了OraDb11g_home1外,勾选其他项目,删除。
按Windows键和R键,点击打开运行窗口,输入regedit,打开注册表,依次展开HKEY_LOCAL_MACHINE\SOFTWARE,找到oracle,删除。
接着依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中,删除所有oracle开头的选项。
打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除里面所有oracle开头的项,在HKEY_CLASSES_ROOT,删除以ora开头的选项。
最后重启电脑,再删除oracle目录,删除Oracle安装目录app等一切。
删除的操作步骤如下:
停用oracle服务,进入计算机中的管理,在服务中,找到oracle开头的一切服务,右点击选择停止。
在开始菜单中,找到Universal Installer,点击运行Oracle Universal Installer,卸载产品。
在所有产品清单的窗口中,打开全部展开,除了OraDb11g_home1外,勾选其他项目,删除。
按Windows键和R键,点击打开运行窗口,输入regedit,打开注册表,依次展开HKEY_LOCAL_MACHINE\SOFTWARE,找到oracle,删除。
接着依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中,删除所有oracle开头的选项。
打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除里面所有oracle开头的项,在HKEY_CLASSES_ROOT,删除以ora开头的选项。
最后重启电脑,再删除oracle目录,删除Oracle安装目录app等一切。