oracle数据库的一些基础操作,包括数据导入导出,job,clob字段处理,死锁,解锁,dblink



1、以操作系统权限认证的oracle sys管理员登陆
sqlplus "/as sysdba"  




2、创建表空间

create tablespace tablespacename datafile 'F:\app\Administrator\oradata\filename.dbf' size 200m autoextend on next 20m;



3、创建临时表空间

create temporary tablespace tablespacename_temp tempfile 'F:\app\Administrator\oradata\tempfilename.dbf' size 200m autoextend on next 20m;



4、创建用户
create user username identified by password default tablespace tablespacename temporary tablespace tablespacename_temp ;



5、用户授权
grant dba to username;




 6、数据库备份导出
 expdp username/password@orcl  dumpfile=filename.dmp schemas=username
 文件目录在:D:\app\Administrator\admin\fjkz\dpdump
 
 7、数据库备份导入:
 将dmp文件复制到数据库dbdump的目录,如:D:\app\Administrator\admin\username\dpdump;
 impdp username/password@orcl dumpfile=filename.dmp  schemas=username
 

 
 8、删除用户及用户下面的数据
 drop user username cascade;
 
 9、删除表空间
 DROP TABLESPACE spacename INCLUDING CONTENTS AND DATAFILES;
 
 
 10、非默认表空间配额
 alter user username
  quota 100m on tsname;


11、指定数据库实例登录
username/password@orcl as sysdba


12、数据备份还原文件
http://wenku.baidu.com/view/5d7728c69ec3d5bbfd0a7476.html


13、全部导出(过时的方式)
13.1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
13.2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
13.3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat) 


13.4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
14、数据的导入
14.1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
  imp fjkz_dj_zs/fjkz_dj_zs@orcl  file=d:\daochu.dmp
  imp aichannel/aichannel@HUST full=y  file=file= d:\data\newsmgnt.dmp ignore=y 
  上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
  在后面加上 ignore=y 就可以了。
14.2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1) 


15、用户解锁:
alter user username account unlock;  -- 先去锁
alter user username identified by fjkz_dj;  -- 然后重置密码


16、给用户创建dblink权限:
grant create public database link to username; 


17、database link 数据库连接
-- Drop existing database link 


drop database link linkname;
-- Create database link 
create database link linkname
  connect to orcl
  using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
  
18、解决dababase lob类型数据链接问题,通过将数据存入临时表处理数据相关问题;
Create global temporary table temp on commit preserve rows as select * from tablename@linkname;  
Insert into test select * from temp;


19、将一个用户的数据库表复制到另外一张表
exp user/password file=d:\temp.dmp owner=user consistent=y direct=y;
imp newuser/password file=temp.dmp ignore=y fromuser=olduser touser=newuser;


20、指定数据库实例
set oracle_sid=orcl


21、删除当前登录的用户
a、查出当前登录用户的session
select username, sid, serial# from v$session 
b、清理session
alter system kill session '4,13'


22、将数据库导入到另外一个用户下面:
impdp user/user@orcl dumpfile=filename.dmp full=y table_exists_action=replace 
remap_tablespace=user1:user remap_schema=user1:user


23、跨服务器数据导出
expdp username/password@orcl dumpfile=filename.dmp network_link=linkname




24、统计表空间使用情况:
SELECT A.TABLESPACE_NAME,      
       FILENUM,   
       TOTAL "TOTAL (MB)",  
       F.FREE "FREE (MB)",
       TO_CHAR(ROUND(FREE * 100 / TOTAL, 2), '990.00') "FREE%", 
       TO_CHAR(ROUND((TOTAL - FREE) * 100 / TOTAL, 2), '990.00') "USED%",    
       ROUND(MAXSIZES, 2) "MAX (MB)"
  FROM (SELECT TABLESPACE_NAME,          
               COUNT(FILE_ID) FILENUM,        
               SUM(BYTES / (1024 * 1024)) TOTAL,          
               SUM(MAXBYTES) / 1024 / 1024 MAXSIZES      
          FROM DBA_DATA_FILES       
         GROUP BY TABLESPACE_NAME) A,     
       (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / (1024 * 1024))) FREE     
          FROM DBA_FREE_SPACE      
         GROUP BY TABLESPACE_NAME) F
 WHERE A.TABLESPACE_NAME = F.TABLESPACE_NAME
 
 25、增加数据库表空间
 增加表空间大小的四种方法
Meathod1:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
 
Meathod2:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
 
Meathod3:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
 
Meathod4:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;

26、数据库锁表处理
1.下面的语句用来查询哪些对象被锁:
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
2.下面的语句用来杀死一个进程:
alter system kill session '24,111'; (其中24,111分别是上面查询出的sid,serial#)
【注】以上两步,可以通过Oracle的管理控制台来执行。
3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)
4.在OS上杀死这个进程(线程):
1)在unix上,用root身份执行命令:
#kill -9 12345(即第3步查询出的spid)
2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:
orakill sid thread
其中:
sid:表示要杀死的进程属于的实例名
thread:是要杀掉的线程号,即第3步查询出的spid。
例:c:>orakill orcl 12345




 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值