Oracle数据库操作

一、建立用户/表空间/分配权限/删除表空间

1)注意表空间存放目录

2)/*分为四步 */

/*第1步:创建临时表空间  */

create temporary tablespace yuhang_temp

tempfile 'D:\oracledata\yuhang_temp.dbf'

size 50m 

autoextend on 

next 50m maxsize 20480m 

extent management local; 


/*第2步:创建数据表空间  */

create tablespace yuhang_data 

logging 

datafile 'D:\oracledata\yuhang_data.dbf'

size 50m 

autoextend on 

next 50m maxsize 20480m 

extent management local; 


/*第3步:创建用户并指定表空间  */

create user yuhang identified by yuhang 

default tablespace yuhang_data 

temporary tablespace yuhang_temp; 


/*第4步:给用户授予权限  */

grant connect,resource,dba to yuhang;

对于不使用的表空间要彻底删除

drop tablespace TS_DATA_DB_ZZWK including contents and datafiles;

二:导出oracle的dmp遇到空表的情况

昨天晚上按徐大姐要求给开发导一份测试库,在导测试库的过程中遇到了一个情况是,oracle11g,在使用

export时候不支持导出空表,以下是一个简单的办法:

1、导出前查询一下有多少张空表

SELECT TABLE_NAME FROM USER_TABLES WHERE NUM_ROWS=0,如下18张

2、oracle11g不给空表分片Segment(段,自己百度看下),那么我们就给这些空表分配

Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

将执行结果导出为tsv文件,如下:

3、将tsv中的语句复制,在sql窗口中执行,然后再导出dmp文件。如下:

再点击工具栏Tools—Export tables ,打开如下对话框:

三、exp导出dmp

如果oracle的plsql中不能使用export tables命令。那么可以打开cmd窗口,输入:

2) 导出一张表,如:

Exp bzsf/iflytek2015@BZSF  file=D:/T_RYJBXX.dmp  tables=(T_RYJBXX)

3) 导出多张表,如:

exp bzsf/iflytek2015@BZSF  file= D:/T_RYJBXX.dmp  tables=(T_RYJBXX, T_CLJBXX)

   3)导出表中某些值,如:

将数据库中的表t_uaac_organization中的字段code含有"34180"打头的数据导出

 exp gsb_test/passwd!@sgy file=E:\xuancheng.dmp tables=(t_uaac_organization) query=\" where code like '%3418%' \"

4) 导出某一个用户下所有对象,要用超级管理员

exp  workflow_test/123456@192.168.57.180:1521/sgy  file=d:/work.dmp owner=workflow_test

四、导出遇到特殊字符

比如密码中含有@符号。或者/符号


五、imp导入dmp

1)可以直接通过plsql工具导入。

2)imp workflow_test/123456@192.168.78.121:1521/zzora  file=d:/work.dmp  full=y  ignore=y

六、查看mysql表的详细信息

登陆mysql服务器,进入mysql数据库,输入:

Mysql>Show table status like 'mytable'

Name: mytable #表名

Engine: InnoDB #存储引擎伟InnoDB

 Version: 10 #mysql版本

Row_format: Compact #行格式。有Dynamic,fixed,Compact等格式。Dynamic是动态行,表字段里面宝航varchar,BloB等不定长字段。fixed是定长行。Compact是行压缩。

 Rows: 0 #表中的行数

Avg_row_length: 0 #平均每行的字节数

Data_length: 16384 #整个表的数据量(字节)

Max_data_length: 0 #表最大的容量。0表示无限

Index_length: 0 #索引数据占用磁盘空间的大小

Data_free: 10485760 #表示已分配但还未被使用的空间大小。Auto_increment: NULL #下一个AUto_increment的值

Create_time: 2011-08-0622:39:46 #创建时间

Update_time: NULL #更新时间

Check_time: NULL #使用check table等命令时的检查时间

Collation: utf8_general_ci #默认字符集和字符列排列顺序

 Checksum: NULL #如果启动,则表示整个表的校验和Create_options: max_rows=4294967295avg_row_length=32 #表创建时的选项 Comment: 1 row inset (0.00 sec)

七、oracle复制表结构和数据

Oracle:

复制表结构及其数据:create table table_name_new as select * from table_name_old

只复制表结构:create table table_name_new as select * from table_name_old where 1=2;


八、查看oracle表空间使用查看

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

  D.TOT_GROOTTE_MB "表空间大小(M)",

  D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

  TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%'"使用比",

  F.TOTAL_BYTES "空闲空间(M)",

  F.MAX_BYTES "最大块(M)"

  FROM (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

  ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

  FROM SYS.DBA_FREE_SPACE

  GROUP BY TABLESPACE_NAME) F,

  (SELECT DD.TABLESPACE_NAME,

  ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

  FROM SYS.DBA_DATA_FILES DD

  GROUP BY DD.TABLESPACE_NAME) D

  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

  ORDER BY 1;


使用情况

Select

total.tablespace_name,

  round(total.MB, 2) as Total_MB,

  round(total.MB - free.MB, 2) as Used_MB,

  round((1 - free.MB / total.MB) * 100, 2) || '%'as Used_Pct


from

(select tablespace_name, sum(bytes) / 1024 / 1024 as MB

  from dba_free_space

  group by tablespace_name) free,

  (select tablespace_name, sum(bytes) / 1024 / 1024 as MB

  From dba_data_files

Group by tablespace_name) total


Where free.tablespace_name = total.tablespace_name;



九、登录oracle数据提示异常:表空间问题


扩大表空间:

更改system表空间的数据文件SYSTEM.dbf分配空间

alter database datafile ‘/u04/oradata/truth/system.dbf’ resize 2048M


十、linux 下启动Oralce

   a、root用户关闭防火墙  service iptables stop

   b、oracle用户开启监听 :

 su - oracle ;

lsnrctl start;

    c、开启数据库:

     sqlplus "/as sysdba" ; 

startup ; 

exit ;

十一、查看oracle字符集、版本、修改字符集

select version from v$instance;

select userenv('language') from dual;--服务端字符集

client字符集修改:在 /home/oracle与 /root用户目录下的.bash_profile中添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句;

修改数据库字符集为UTF-8

1.以DBA登录

2.执行转换语句:

复制代码 代码如下:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT EXCLUSIVE;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE OPEN;

ALTER DATABASE NATIONAL CHARACTER SET UTF8;

SHUTDOWN IMMEDIATE;

STARTUP;

十二、添加表空间大小

先查看表空间当前情况:

select tablespace_name, file_id, file_name,

round(bytes/(1024*1024),0) total_space

from dba_data_files

order by tablespace_name

重设大:1:

alter database datafile  '\oracle\oradata\anita_2008.dbf' resize 4000m

重设大小2:

alter tablespace ESPS_2008 add datafile '\oracle\oradata\anita_2010.dbf' size 1000m

十三、数据库启动 startup报错,

启动的时候提示郑:MEMORY_TARGET not supported on this system

请看:http://www.linuxidc.com/Linux/2012-12/76976.htm 进行学习

vi /etc/fstab 调整内存:

十四、oracle自启动设置

请看

http://jingyan.baidu.com/article/b2c186c8fe4306c46ef6ff16.html


十五、导入和导出dmp操作

imp workflow_test/123456@192.168.78.121:1521/zzora file=d:/work.dmp full=y

exp workflow_test/123456@192.168.57.180:1521/sgy file=d:/work.dmp owner=workflow_test

十六、表空间名字错了,修改表空间名字

Alter tablespace XX rename to YY

十七、oracle执行select提示如下

grant select on v_$statname to yztv1_test;

grant select on v_$sesstat to yztv1_test;

grant select on v_$session to yztv1_test;

grant select on v_$mystat to yztv1_test;

 十八、一个用户yztv1_test查询另一个用户workflow_test的表

grant select on workflow_test.wfworkitem to yztv1_test;

grant select on workflow_test.wfwiparticipant to yztv1_test;

十九、数据库回滚日志文件UNDOTBS01.DBF太大了

 以SYS用户登录Oracle 自带的SQL*PLUS的方法:

1-- 创建一个新的小空间的UNDO TABLESPACE

CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE 'D:\ORACLE\ORADATA\ORCL\UNDOTBS02.DBF' SIZE 100M REUSE AUTOEXTEND ON;

 2-- 设置新的表空间为系统UNDO_TABLESPACE

ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

3—在配置文件中修改undo_tablespace的设置                                  

D:\oracle\product\10.1.0\db_1\database\initoracle.ora

将其中的undo_tablespace=UNDOTBS1 改为 UNDOTBS2

4—重启数据库                                                               

采用命令SHUTDOWN IMMEDIATE 关闭数据库,然后再采用命令STARTUP 重新开启数据库;

二十、建立表空间遇到的问题,权限不足问题

解决方法 对要创建文件的目录执行 “chown -R oracle:oinstall 目录”,

比如chown -R oracle:oinstall /u01所以这个命令的作用是:

把/u01目录下的所有文件和目录的拥有者改为oracle 。

二十一、oracle数据库日志归档满了

登陆数据库,弹出如下提示框:

办法:登陆oracle数据库服务器

Su - oracle

rman

connect target /;

crosscheck archivelog all;

delete expired archivelog all;

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

二十二、低效率sql语句(时间长)

select *

 from (select v.sql_id,

 v.child_number,

 v.sql_text,

 v.elapsed_time,

 v.cpu_time,

 v.disk_reads,

 rank() over(order by v.elapsed_time desc) elapsed_rank

 from v$sql v) a

 where elapsed_rank <= 10;

二十三、占用CPU高的sql

select *

from (select v.sql_id,

v.child_number,

v.sql_text,

v.elapsed_time,

v.cpu_time,

v.disk_reads,

rank() over(order by v.cpu_time desc) elapsed_rank

from v$sql v) a

where elapsed_rank <= 10;

二十四、锁表查询

--锁表查询(用超级管理)

SQLSELECT object_name, machine, s.sid, s.serial#

FROM gv$locked_object l, dba_objects o, gv$session s

WHERE l.object_id = o.object_id

AND l.session_id = s.sid;

找到被

ALTER system kill session '23, 1647'锁定的表,解锁:

二十五、导出表和表结构

导出表:export tables是一个dmp文件

导出表结构:export users object是一个sql文件

选择要导出的表名称。


对于一个sql文件再导入时候,可以点击File—New—Command Window,

弹出框中,输入@,选择导入的sql文件名称。


二十六、从开发那里导出的dmp文件导入测试库提示XX表空间不存在

1)请让开发导出dmp的时候,不要勾选表空间。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容