数据库常用操作

(1)dblink创建
实例 

要从OA的正式数据库中查询数据到OA的测试系统  建立DBLINK


在OA的测试数据库中创建
   
 1、 create public database link zsoa connect to ecology identified by ecology using 'WOEROADB';   --这个WOEROADB就是正式数据库的TNSNAMES的名字

      CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;

 2、在测试数据库的tnsname.ora中新建一段   $ORACLE_HOME/network/admin    把正式系统的复制过来即可
     
      WOEROADB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = OADB)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oracle)
    )
  )





drop public database link zsoa;
(2)常用sql
一:删除表用户
    drop user ×× cascade

二:更新表
    update table set 列=value where 列=value

三:建表
create table ORDER_PLAN_RATE
(
  ID               NUMBER not null,
  CUSTOMER_NAME    VARCHAR2(100),
  CUSTOMER_CODE    VARCHAR2(100)
);
comment on column ORDER_PLAN_RATE.CUSTOMER_NAME
  is '客户名称';

四:建索引
 select sum(nvl(pay_58, 0)) Day_Salary --日工资
          FROM PAY.PAY_PERSON_DAY ppd --来自薪资系统
         where pay_1 = '20130601'
           and pay_4 in ('设备部',
                         '品保部',
                         '成品仓',
                         '制造部本部',
                         '计划部',
                         '物控部',
                         '客服部');
                         
create index PAY.PAY_PERSON_DAY_N1 on PAY.PAY_PERSON_DAY(pay_1,pay_4);
commit;
(3)创建表结构
//创建数据表空间 

create tablespace zfmi 
logging 
datafile 'D:\oracle\oradata\zfmi\zfmi.dbf' 
size 100m 
autoextend on 
next 32m maxsize 2048m 
extent management local; 

//datafile参数必须有 


//删除用户以及用户所有的对象 

drop user zfmi cascade; 
(4)导入导出
数据导出: 
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 
   exp system/manager@TEST file=d:daochu.dmp full=y 
2 将数据库中system用户与sys用户的表导出 
   exp system/manager@TEST file=d:daochu.dmp owner=(system,sys) 
(5)死锁
1)执行下面SQL,先查看哪些表被锁住了 
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id;

2)查处引起死锁的会话
select b.username,b.sid,b.serial#,logon_time 
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
这里会列出SID

3) 查出SID和SERIAL#: 
查V$SESSION视图 
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID'; 
这一步将得到PADDR 

4)查V$PROCESS视图 
SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR'; 
这一步得到SPID 

5)杀死进程 
(1)在数据库中,杀掉ORACLE进程 
ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#'; 

猜你喜欢

转载自cqh520llr.iteye.com/blog/1896925