好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle 常用操作

Docker 环境部署的oracle

 #查询oracle 实例
docker ps -a
#进入实例
docker exec -it 58aca4848691 /bin/bash
#切换oracle用户
su - oracle
#设置oracle 环境变量
export ORACLE_HOME=/u01/app/oracle-product/12.1.0/xe 
export PATH=$PATH:$ORACLE_HOME/bin 
export ORACLE_SID=xe
 

打开sqlplus:

管理员登录:
     sqlplus / as sysdba
 
directory相关SQL语句
 select * from dba_directories; 
create directory dump_dir as ‘/home/oracle/tmp‘;
grant read,write on directory my_dir to scott
 
创建用户:
  create user fms identified   by fms;
 
修改用户以及密码:
  alter user fms identified by fms;
 
查询所有默认用户表空间:
  select username,default_tablespace from dba_users;
 
创建表空间:
 create tablespace fms_cloud_ym_data datafile ‘/u01/app/oracle/oradata/xe/fms_cloud_ym_data.dbf‘ size 500M reuse autoextend on next 10M maxsize unlimited extent management local autoallocate; 
 
指定用户表空间:
 create user fms_cloud_ym identified  by fms_cloud_ym default tablespace fms_cloud_ym_data temporary tablespace TEMP profile DEFAULT;

##修改用户表空间
alter user fms default tablespace fms;
 
指定用户权限:
 grant create user,drop user,alter user,create any view, select any table,delete any table, insert any table,update any table, drop any view ,exp_full_database,imp_full_database, create database link, connect,resource,create session to fms_cloud_ym; 
 

用户权限说明

12c修改用户:

 alter user fms_cloud_ym QUOTA UNLIMITED ON fms_cloud_ym;

 
数据泵导库: 导入:
 impdp fms_cloud_ym/fms_cloud_ym@10.1.4.37:1521/xe
--导入文件所在文件夹
directory=dump_dir 
--导入dmp文件名 
dumpfile=20201211_fms_cloud.dmp  
--从 fms_cloud用户 到 fms_cloud_ym
remap_schema=fms_cloud:fms_cloud_ym 
--从表空间 fms_cloud_data 到 fms_cloud_ym_data
remap_tablespace=fms_cloud_data:fms_cloud_ym_data 
--导出日志文件
ogfile=fms_cloud_ym_data.log;
 

参数说明:

tables 导出指定表 tables=(scott.emp,scott.dept) table_exists_action选项:{skip 是如果已存在表,则跳过并处理下一个对象;append是为表增加数据;truncate是截断表,然后为其增加新数据;replace是删除已存在表,重新建表并追加数据} schemas 指定用户 schemas=(scott,hr) 例子
 导入模式:
导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott logfile=impdp.log;

导入表(从scott用户中把表dept和emp导入到system用户中)
impdp fms_cz_md/fms_cz_md@localhost:1521/xe  dumpfile=CURVECNBD.DMP tables=fms_cloud_md.t8_bond_curvecnbd remap_schema=fms_cloud_md:fms_cz_md  REMAP_TABLESPACE=fms_cloud_md:fms_cz_md  logfile=imp_curvecnbd.log table_exists_action=append/replace;

导入表空间
impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example logfile=impdp.log;

导入整个数据库
impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log;
 
导出:
 expdp fms_cloud_ym/fms_cloud_ym@10.1.4.37:1521/xe   
--指定导出用户
schemas=fms_cloud_ym 
--导出文件名
dumpfile=20210223_fms_cloud_ym.dmp 
--导出文件夹
directory=data_pump_dir 
--导出 日志
logfile=fms_cloud_ym.log;
 
参数说明:类似导入参数 例子
 导出模式:
导出用户及其对象
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

导出指定表
expdp fms_cloud_md/fms_cloud_md@localhost:1521/orcl tables=fms_cloud_md.t8_bond_curvecnbd dumpfile=curvecnbd.dmp directory=dump_file logfile=exp_curvecnbd.log;

按查询条件导
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery=‘where deptno=20‘ logfile=expdp.log;

按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=temp,example logfile=expdp.log;

导整个数据库
expdp scott/123@127.0.0.1/orcl directory=dump_dir dumpfile=ly.dmp full=y  logfile=expdp.log;
 
oracle 数据库解锁语句:
 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;
   
alter system kill session ‘2835, 18388‘;
 
删除用户和表空间
 drop user fms_cloud_test cascade;
drop tablespace fms_cloud_test including contents and datafiles;
 
查询表空间使用情况
 select a.tablespace_name "表空间名",
       total "表空间大小",
       free "表空间剩余大小",
       (total - free) "表空间使用大小",
       total / (1024 * 1024 * 1024) "表空间大小(g)",
       free / (1024 * 1024 * 1024) "表空间剩余大小(g)",
       (total - free) / (1024 * 1024 * 1024) "表空间使用大小(g)",
       round((total - free) / total, 4) * 100 "使用率 %"
  from (select tablespace_name, sum(bytes) free
          from dba_free_space
         group by tablespace_name) a,
       (select tablespace_name, sum(bytes) total
          from dba_data_files
         group by tablespace_name) b 
 where a.tablespace_name = b.tablespace_name;
 
kill 会话
 select username,sid,serial#,paddr from v$session where username=‘FMS_CLOUD_TEST‘;
alter system kill session ‘4,7187‘;
alter system kill session ‘65,561‘;
alter system kill session ‘162,2999‘;
alter system kill session ‘192,2132‘;
 
建立dblink
 drop database link "MarketData";
Create database link 
create database link "MarketData"
  connect to fms_cloud_ym_md identified by "fms_cloud_ym_md"
  using ‘(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.4.37)(PORT = 1521)))
    (CONNECT_DATA =(SERVICE_NAME = xe)))‘

 

Oracle 常用操作

标签:bin   ade   ted   directory   模式   kill   cti   example   export   

查看更多关于Oracle 常用操作的详细内容...

  阅读:44次