常用数据库操作

启动数据库监听器lsnrctl start
停止数据库监听器
lsnrctl stop
登录oracle
sqlplus / as sysdba
启动oralce
startup;
关闭oracle
shutdown immediate;

数据库因数据文件损坏起不来时
startup mount
alter database datafile 21 offline drop;
alter database recover datafile '/u01/app/oracle/oradata/test.dbf';
alter database datafile '/u01/app/oracle/oradata/test.dbf' online;
alter database open;

创建表空间
CREATE TABLESPACE test
DATAFILE '/u01/app/oracle/oradata/test.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
查询表空间数据文件
SELECT tablespace_name, file_id, file_name,bytes
FROM dba_data_files ORDER BY tablespace_name;
为表空间添加数据文件
ALTER TABLESPACE test ADD DATAFILE
'/u01/app/oracle/oradata/test02.dbf' SIZE 1G
AUTOEXTEND ON NEXT 1G MAXSIZE 30G;
创建用户
create user 用户名 identified by 密码 default tablespace 表空间;
赋给用户Connect角色、Resource角色和DBA角色
grant connect,resource,dba to 用户名;
赋给用户远程权限(访问其他用户的表需要此权限)
grant all privileges to 用户名

数据库导出:
expdp 用户名/密码@数据库服务器IP:1521/数据库实例名 schemas=用户名 directory=DATA_PUMP_DIR DUMPFILE=需要导出的备份文件.DMP LOGFILE=导出产生的日志.log
导出某几个表参数
tables=schema1.table1,schema1.table2
DATA_PUMP_DIR目录是使用数据泵导出导入方式的默认存储目录,具体路径为oracle安装路径下的oracle/admin/orcl(实例)/dpdump
数据库导入:
IMPDP 用户名/密码@数据库服务器IP:1521/数据库实例名 directory=DATA_PUMP_DIR DUMPFILE=需要导入的备份文件.DMP LOGFILE=导入产生的日志.log REMAP_SCHEMA=源用户名:目标用户名 remap_tablespace=源表空间:目标表空间 TRANSFORM= OID:N,SEGMENT_ATTRIBUTES:N SKIP_UNUSABLE_INDEXES=Y TABLE_EXISTS_ACTION=truncate
表存在时参数
table_exists_action=skip
table_exists_action=replace

常用sql语句

清除表重复数据
delete from test where rowid in(
select max(rowid) From test group by year,admdivid,expfuncid,expecoid,projectid having count(*)>1)

MERGE 命令,如果数据库中存在数据就update,如果不存在就insert。
MERGE INTO TEST T1
USING (SELECT '2' as ID, 'newtest2' as NAME FROM dual) T2 on (T1.ID=T2.ID)
WHEN MATCHED THEN
UPDATE SET T1.NAME=T2.NAME
WHEN NOT MATCHED THEN
INSERT (T1.ID, T1.NAME) VALUES (T2.ID, T2.NAME );

intersect 是交集,交集就是两个结果集中都有的元素
select uid from tb1
intersect
select uid from tb2
那么既存在tb1 又存在tb2中 相同的UID 就会查出来
minus 是差集
select uid from tb1
minus
select uid from tb2
存在于tb1 但不存在于tb2中的uid 会被查出

--查看被锁的表
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;
--查看那个用户那个进程照成死锁
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;
--查看连接的进程
SELECT sid, serial#, username, osuser FROM v$session;
--查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type FROM v$session s, v$lock l
WHERE s.sid = l.sid AND s.username IS NOT NULL ORDER BY sid;
/*这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,
任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。*/
--杀掉进程 sid,serial#
alter system kill session'210,11562';

最新文章

  1. dedecms 文章页调用来源合适时间的方法
  2. kerboros安装
  3. 使用Linux的命令行工具做简单的文本分析
  4. Hibernate工作流程
  5. 反向代理-- WEB服务的加速器[转]
  6. log4j2配置MDC分线程写日志
  7. 好用的API文档--在线版
  8. CodeForces 625D Finals in arithmetic
  9. CSS 实现流布局以及多列混合布局
  10. 加快compser install 和update的方法
  11. web测试实践——day01
  12. ejs常用语法
  13. POJ 1273 Drainage Ditches【最大流模版】
  14. k8s(3)-Pods和Nodes的概念
  15. zzw原创_解决Could not chdir to home directory /test/bdctool: Permission denied一例
  16. .NET MVC中的数据验证
  17. Linux svn服务器搭建
  18. jquery简介未完成
  19. Linux设置口令复杂度和口令定期更换策略
  20. 显示iOS所有系统字体

热门文章

  1. 图论--LCA--Tarjan(离线)
  2. Servlet 教程——检视阅读
  3. F - Qualification Rounds CodeForces - 868C 二进制
  4. linux的用户管理、组管理
  5. HTTP GET | POST | DELETE请求
  6. Kubernetes中 Pod 是怎样被驱逐的?
  7. Windows基础学习
  8. 力扣题解-面试题58 - II. 左旋转字符串
  9. java 面向对象面试题,问答题,构造方法,抽象类,继承,多态,接口,异常总结;
  10. ES6常见面试题